请解释 Java 中 equals() 和 hashCode() 方法的关系,以及重写它们时需要注意哪些规则?
考察说明
考察对 Java 对象相等性与哈希契约的理解及重写规范
回答思路
- 正确说明 equals() 与 hashCode() 的约定(相等对象哈希值必须相同)
- 正确指出重写 equals() 必须重写 hashCode() 的原因(如 HashMap 中的行为)
- 提及重写 equals() 时的自反性、对称性、传递性、一致性等规则
- 能举例说明违反约定导致的问题(如无法从 HashMap 中取出对象)
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。