Java高频面试题解决方案及详细答案(实战接地气版).docxVIP

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

Java高频面试题解决方案及详细答案(实战接地气版).docx

Java高频面试题解决方案及详细答案(实战接地气版)

一、Java基础核心

1.==和equals的区别?

核心结论:==比的是内存地址,equals比的是内容(重写后)

详细解答:

基本数据类型:只能用==,比较的是数值本身

引用数据类型:==比较两个对象的堆内存地址,判断是不是同一个对象

equals是Object原生方法,默认和==效果一致,也是比较地址

String、Integer等包装类重写了equals方法,重写后只比较对象内容,不看地址

面试加分点(常见坑):

Stringa=abc;Stringb=newString(abc);//a==b为false,a.equals(b)为true

2.String、StringBuilder、StringBuffer的区别?

详细解答:

String:不可变字符串,底层是final字符数组。每次拼接、修改都会生成新字符串,频繁操作性能极差

StringBuffer:可变字符串,线程安全(所有方法加了synchronized),多线程场景用,性能偏低

StringBuilder:可变字符串,线程不安全,无锁,单线程场景首选,性能最高

实际开发规范:日常字符串拼接一律用StringBuilder;多线程共享变量拼接用StringBuffer;固定不变的文

文档评论(0)

1亿VIP精品文档

相关文档