- 2
- 0
- 约6.7千字
- 约 9页
- 2026-07-29 发布于河北
- 举报
互联网大厂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数组,拼接直接修改原对象,不会频繁创建新
您可能关注的文档
最近下载
- (2026年)实施指南《HJ 1007-2018 固定污染源废气 碱雾的测定 电感耦合等离子体发射光谱法》.pptx VIP
- 2026年农业农村局事业单位招聘试题及答案.docx VIP
- 芬兰食品接触材料法规Finland 268-1992.docx VIP
- 申请入党积极分子培养考察登记表(模板)PDF打印.pdf VIP
- 铺彩砖施工方案(3篇).docx VIP
- 施工控制网复测报告.docx
- DB5133_T 63-2022 牦牛标准化育肥场布局及圈舍建设规范.docx VIP
- 四升五数学24版《30天暑假作业》每日一练.pdf VIP
- 河道杂草清理专项施工方案.docx
- YY_T 0661-2017外科植入物 半结晶型聚丙交酯聚合物和共聚物树脂.pdf
原创力文档

文档评论(0)