Java开发高频面试题(含接地气详细答案).docxVIP

  • 2
  • 0
  • 约6.36千字
  • 约 10页
  • 2026-07-27 发布于河北
  • 举报

Java开发高频面试题(含接地气详细答案).docx

Java开发高频面试题(含接地气详细答案)

一、Java基础核心(必问)

1、==和equals的区别?

这是面试最基础的题,核心就两点:比较的东西不一样、适用场景不一样。

==是运算符:

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

equals是Object类的方法:

默认情况下和==一样,比较内存地址。但像String、Integer这些类,都重写了equals方法,重写后只比较对象内容,不看地址。

举个实际例子:newString(abc)==abc是false,因为地址不一样;但equals是true,因为内容相同。

2、String、StringBuilder、StringBuffer的区别?

核心区别:可变性、线程安全、效率

1.String:字符串不可变,每次拼接都会生成新字符串对象,频繁拼接数据会产生大量无用垃圾,效率最低。

2.StringBuffer:可变字符串,方法加了synchronized锁,线程安全,多线程场景用,但是加锁会有性能损耗,速度中等。

3.StringBuilder:可变字符串,线程不安全,没有锁开销,速度最快。

实际开发规范:单线程字符串拼接一律用StringBuilder;多线程共享字符串拼接用StringBuffer;固定不变的文本直接用String。

3、f

文档评论(0)

1亿VIP精品文档

相关文档