- 1
- 0
- 约6.66千字
- 约 10页
- 2026-10-13 发布于河北
- 举报
Java高级工程师面试题及详细答案(实战版)
一、Java核心基础(高频进阶)
1、==和equals的区别?重写equals为什么必须重写hashCode?
详细答案:
==是运算符,既可以比较基本类型也可以比较引用类型。基本类型比较的是数值本身,引用类型比较的是对象的内存地址。
equals是Object类的方法,原生逻辑和==一致,也是比较对象地址。大部分业务类(String、Integer、自定义实体)都会重写该方法,重写后是比较对象的内容、属性值,不再比较地址。
必须重写hashCode的核心原因:Java哈希表集合(HashMap、HashSet)存储数据时,先判断hashCode是否一致,再判断equals是否相等。
如果只重写equals不重写hashCode,两个内容相同的对象,会生成不同的hash值,在哈希集合中会被判定为两个不同对象,导致重复存储、去重失效,违反哈希存储规则。
2、String、StringBuilder、StringBuffer的区别?业务场景怎么选?
详细答案:
String是不可变字符串,底层是final修饰的字符数组(JDK9+是字节数组),每次拼接、修改都会生成新对象,频繁操作会产生大量无用对象,占用内存。
StringBuffer和StringBuilder是可变字符串,修改不会生成新对象。核心区别是线程安全:
您可能关注的文档
最近下载
- 卫生部《臭氧消毒技术规范》.docx VIP
- 《论语》导读(复旦大学)学习通测试及答案.doc VIP
- 第5课 中国人民站起来了 第一课时 (教学课件)道德与法治统编版五年级上册2026秋.pptx
- 内蒙古2016机关事业单位养老保险制度改革实施办法.doc VIP
- 第六章新新贸易理论.ppt VIP
- 书记员考试法律基础知识.doc VIP
- 先天性肛门直肠畸形.pptx VIP
- 康复工程技术-肖晓鸿-第四章其他康复辅助器具技术第七节康复训练辅助器具.pptx
- 2018年安徽省建设工程工程量清单计价办法(安装工程).docx VIP
- 北京北大方正软件职业技术学院《临床麻醉学》2025-2026学年期末试卷.doc VIP
原创力文档

文档评论(0)