如果两个对象equals()相等,那么hashcode也不一定相等?
见到有个这种命题,如果两个对象equals()相等,那么hashcode也不一定相等
我觉得有点扯,
Object里equals()的实现
public boolean equals(){
return (this == obj);
}
至于String,Intger,Long等类型也各自实现equals,hashcode,但也满足一致
hashcode是用一个本地方法实现,根据内存堆空间里的地址返回一个int型,如果这样可以简单理解成地址。(有人说同一个地址生成的hashcode不一定相同,我也觉得有点扯)
所以我觉得如果两个对象equals()相等,那么hashcode也不一定相等,是个假命题
注:肯定不考虑自己去覆盖equals或hashcode的情况,那样的话讨论这个没任何意义