Java工程师真实面试题(附接地气详细答案).docxVIP

  • 1
  • 0
  • 约5.61千字
  • 约 8页
  • 2026-07-27 发布于河北
  • 举报

Java工程师真实面试题(附接地气详细答案).docx

Java工程师真实面试题(附接地气详细答案)

一、Java基础核心(高频必问)

1、==和equals的区别是什么?

参考答案:

==是运算符,equals是Object类的方法,核心区别分两种场景:

1)基本数据类型:==比较的是数值是否相等,基本类型没有equals方法;

2)引用数据类型:==比较的是对象的内存地址,也就是是不是同一个对象;equals默认也是比较地址,但很多类会重写这个方法。

比如String、Integer、ArrayList这些常用类,都重写了equals,重写后比较的是对象内容是否一致,不再比较地址。

举个实战例子:newString(a)==a是false,地址不一样;但两个字符串用equals一定是true。

2、String、StringBuilder、StringBuffer的区别?日常开发怎么选?

参考答案:

1)String:字符串不可变,每次拼接、修改都会生成新字符串对象,频繁操作会产生大量垃圾对象,效率最低;

2)StringBuffer:可变字符串,线程安全,所有方法都加了synchronized锁,并发场景安全,但性能稍差;

3)StringBuilder:可变字符串,线程不安全,没有锁,性能最高。

开发选型:

日常单线程业务、接口拼接字符串、循环拼接,一律用StringBuilder;多线程共享变量操作

文档评论(0)

1亿VIP精品文档

相关文档