【发布时间】:2014-12-31 15:14:32
【问题描述】:
我们知道 hashCode() 的默认实现在将对象的内部地址converting the internal address 转换为整数后返回整数。所以每个对象的内存都不一样,那么为什么hashCode()不会生成唯一的hashcode。
我的问题是,如果我们不覆盖 hashcode() 和 equals,为什么 hashcode() [它返回一个对象的地址表示的整数] 不会生成唯一代码?
【问题讨论】:
-
默认的
equals()也并不真正检查完全相等。要使用任何一个,您都需要覆盖它;如果您不指定方法,您希望 java 做什么? -
感谢您的重播但是我的问题是,如果我们不覆盖哈希码和等于,为什么哈希码不会生成唯一代码,因为它是对象的内存表示?