- 1
- 0
- 约4.36千字
- 约 7页
- 2026-07-27 发布于河北
- 举报
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)