- 0
- 0
- 约6.07千字
- 约 8页
- 2026-11-04 发布于河北
- 举报
牛客网高频Java面试题及详细答案(实战版)
一、Java基础核心面试题
1.谈谈==和equals的区别
这是Java最基础的高频考点,核心区别是比较的内容不同,分基本数据类型和引用数据类型两种场景:
1、基本数据类型:只能用==,比较的是变量的实际数值是否相等。
2、引用数据类型:==比较的是两个对象的内存地址,判断是不是同一个对象;equals是用来比较对象内容是否相等。
这里要注意一个关键点:equals本质上是Object类的方法,Object中默认的equals方法底层就是==,默认也是比较内存地址。像String、Integer这些常用类,都重写了equals方法,所以才可以实现内容比对。如果我们自定义类不重写equals,默认还是比较地址。
2.String、StringBuilder、StringBuffer的区别
三者核心差异集中在可变性、线程安全、性能三个维度,面试直接按场景区分即可:
1、String:字符串常量,不可变。每次对String进行拼接、修改操作,都会生成一个新的字符串对象,原对象不会改变。频繁字符串拼接场景下性能极差。
2、StringBuilder:可变字符串,线程不安全,性能最高。底层是字符数组实现,修改时直接操作原数组,不会创建新对象。多线程并发操作字符串时不能用。
3、StringBuf
原创力文档

文档评论(0)