- 1
- 0
- 约5.29千字
- 约 8页
- 2026-10-13 发布于河北
- 举报
Java难点高频面试题及详细答案(实战向)
一、Java基础核心难点
1、==和equals的核心区别?重写equals为什么必须重写hashCode?
详细答案:
1)核心区别
==是运算符,对于基本数据类型,比较的是数值本身;对于引用类型,比较的是对象的内存地址。
equals是Object类的方法,原生默认实现和==一致,也是比较对象地址。大部分业务类(String、Integer)会重写该方法,重写后比较的是对象的内容属性值。
2)重写equals必须重写hashCode的原因
Java哈希集合(HashMap、HashSet)的存储规则是:先判断hashCode是否一致,再判断equals是否相等。
如果只重写equals不重写hashCode,会出现内容相等的两个对象,hashCode值不同的情况。此时哈希集合会判定为两个不同对象,导致去重失效、取值失败,违反Java哈希规范。
核心原则:相等的对象必须hashCode相等,hashCode相等的对象不一定相等。
2、String、StringBuilder、StringBuffer的区别?为什么String不可变?
详细答案:
1)三者核心区别
String:字符串常量,底层是被final修饰的char数组(JDK9后为byte数组),不可变;线程安全;频繁拼接字符串会产生大量中间垃圾对象,效率极低。
St
您可能关注的文档
最近下载
- 2026年“振兴杯”甘肃省青年职业技能大赛青年突击队“人工智能+”创新创效专项赛技术文件.docx VIP
- 2025年党章党纪党规应知应会知识考试测试题库及答案.docx VIP
- 15J001 围墙大门图集.docx VIP
- 2025石油化工安装工程费用定额.pdf VIP
- 意识形态工作会议记录[.].docx VIP
- 罗汉果种植课件.pptx VIP
- 北京市2026年度定向选调和“优培计划”招聘应届优秀大学毕业生笔试参考题库附答案解析.docx VIP
- 中国临床肿瘤学会(CSCO)胃癌诊疗指南(2026版).docx VIP
- 2026年党章党纪党规应知应会知识测试题库(含答案).docx VIP
- SNT 1870-2016 出口食品中食源性致病菌检测方法 实时荧光PCR法.docx VIP
原创力文档

文档评论(0)