互联网大厂Java后端经典面试题(真实口语化答案).docxVIP

  • 2
  • 0
  • 约6.7千字
  • 约 9页
  • 2026-07-29 发布于河北
  • 举报

互联网大厂Java后端经典面试题(真实口语化答案).docx

互联网大厂Java后端经典面试题(真实口语化答案)

一、Java基础核心(必问)

1.==和equals的区别?

先说结论:==比较的是内存地址,equals比较的是内容,前提是方法被重写过。

基础类型用==,比的是数值本身;引用类型用==,比的是对象在堆里的地址,只有是同一个对象才会相等。

equals是Object的原生方法,原生逻辑和==一样,也是比地址。但像String、Integer、这些常用类,都重写了equals方法,改成了比内容。

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

额外避坑:Integer在-128~127之间会走缓存,这个区间内==为true,超出区间会新建对象,==就是false,equals永远比数值,不受影响。

2.String、StringBuilder、StringBuffer的区别?

核心差异就三点:可变性、线程安全、性能。

String是不可变的,每次拼接字符串都会生成新对象,频繁拼接会产生大量无用对象,浪费内存和GC资源,所以循环里绝对别用String拼接。

StringBuilder和StringBuffer是可变的,底层是char数组,拼接直接修改原对象,不会频繁创建新

文档评论(0)

1亿VIP精品文档

相关文档