Java 中 == 和 equals() 有什么区别?
How are == and equals() different in Java?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: easy
分类: Java
标签: equals, hashCode, 引用比较
参考答案摘要
答案 == 对对象比较的是引用是否相同(是否指向同一内存地址),对基本类型比较的是值;equals() 默认也是引用比较,但很多类会重写为内容比较(如String)。若重写 equals(),必须遵守 hashCode() 约定:equals相等的对象 hashCode 必须相等,否则在HashMap/HashSet等结构中会出错。
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。