牛客网高频Java面试题及详细答案(实战版).docxVIP

  • 0
  • 0
  • 约6.07千字
  • 约 8页
  • 2026-11-04 发布于河北
  • 举报

牛客网高频Java面试题及详细答案(实战版).docx

牛客网高频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)

1亿VIP精品文档

相关文档