Java开发面试题及详细答案(企业真实版).docxVIP

  • 1
  • 0
  • 约5.36千字
  • 约 8页
  • 2026-11-10 发布于河北
  • 举报

Java开发面试题及详细答案(企业真实版).docx

Java开发面试题及详细答案(企业真实版)

一、Java基础核心面试题

1、谈谈你对==和equals()的理解和区别?

这是Java基础高频问题,核心区别是比较的内容不一样。

==是运算符,既可以比较基本数据类型,也可以比较引用数据类型。基本类型比较的是数值本身,引用类型比较的是对象的内存地址。

equals()是Object类的方法,默认情况下和==效果一致,比较对象地址。但像String、Integer这些常用类,都重写了equals方法,重写后不再比较地址,而是比较对象的内容值。

举个实际场景:Stringa=123;Stringb=newString(123);a==b结果是false,因为地址不同;a.equals(b)结果是true,因为内容一致。

2、String、StringBuilder、StringBuffer的区别?实际项目怎么选?

1、安全性:String是不可变字符串,线程安全;StringBuilder线程不安全;StringBuffer加了synchronized锁,线程安全。

2、性能:String每次修改都会生成新对象,频繁拼接性能差;StringBuilder性能最高;StringBuffer因为有锁,性能稍低。

3、使用场景:

少量字符串拼接、字符串内容固定,用String;

单线程下频繁拼接字

文档评论(0)

1亿VIP精品文档

相关文档