AI智能整理导入 AI智能整理导入
×
首页 题库中心 研发工程师模拟测试题库 题目详情
CA7245CE852000018CC42C30E85A107C
研发工程师模拟测试题库
646
多选题

关于equals和hashCode哪些说法正确

A
equals相等则hashCode相等
B
equals不相等则hashCode不相等
C
hashCode相等则equals相等
D
hashCode不相等则equals不相等

答案解析

正确答案:AD

解析:

解析如下:

A. equals 相等则 hashCode 相等:

这是正确的。根据 Java 的 Object 类中 equals 和 hashCode 方法的规范,如果两个对象在 equals 方法中被认为是相等的(即 equals 返回 true),那么这两个对象必须有相同的 hashCode 值。

B. equals 不相等则 hashCode 不相等:

这是错误的。虽然当两个对象 equals 相等时它们必须具有相同的 hashCode,但是 equals 不相等的对象可能具有相同的 hashCode。也就是说,不同的对象可以拥有相同的哈希码值,这种情况称为哈希碰撞。

C. hashCode 相等则 equals 相等:

这是错误的。两个对象的 hashCode 相等并不意味着这两个对象必须 equals 相等。如上所述,可能会出现哈希碰撞的情况,即不同的对象拥有相同的 hashCode。

D. hashCode 不相等则 equals 不相等:

这是正确的。如果两个对象有不同的 hashCode,那么根据 equals 和 hashCode 的规范,这两个对象一定不是 equals 相等的。这是因为如果 equals 方法认为两个对象相等,则它们的 hashCode 必须也相等;反之,如果 hashCode 不等,则 equals 也不可能相等。

所以正确答案是 AD。

相关知识点:

equals与hashCode关系:等则等/不等则不等

研发工程师模拟测试题库

扫码进入小程序
随时随地练习

关闭
专为自学备考人员打造
试题通
自助导入本地题库
试题通
多种刷题考试模式
试题通
本地离线答题搜题
试题通
扫码考试方便快捷
试题通
海量试题每日更新
试题通
欢迎登录试题通
可以使用以下方式扫码登陆
试题通
使用APP登录
试题通
使用微信登录
xiaochengxu
联系电话:
400-660-3606
xiaochengxu