Java四年开发经验面试题及详细答案(完整版).docxVIP

  • 0
  • 0
  • 约7.39千字
  • 约 9页
  • 2026-09-20 发布于河北
  • 举报

Java四年开发经验面试题及详细答案(完整版).docx

Java四年开发经验面试题及详细答案(完整版)

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

1、==和equals的区别?

==是运算符,equals是Object类的方法,两者的比对逻辑完全不同。

基本数据类型使用==,比较的是变量的实际数值;引用数据类型使用==,比较的是对象的内存地址,也就是判断是不是同一个对象。

equals方法默认和==效果一致,比较对象内存地址。但像String、Integer、自定义业务实体这类类,都会重写equals方法,重写后不再比较地址,而是比较对象的内容、属性值是否相等。

日常开发中,字符串、对象内容比对一律用equals,基本类型比对用==。同时要注意常量池机制,部分字符串==结果为true,是因为复用了常量池地址,不代表内容比对应该用==。

2、String、StringBuilder、StringBuffer的区别?

核心区别在于可变性和线程安全,适配不同业务场景。

String是不可变字符串,底层是被final修饰的字符数组(JDK9+是字节数组),每次拼接、修改字符串都会生成新的String对象,频繁操作会产生大量垃圾对象,效率最低。

StringBuilder和StringBuffer是可变字符串,修改操作不会新建对象,底层是动态扩容的数组,拼接效率远高于String。

线程安

文档评论(0)

1亿VIP精品文档

相关文档