java中hashcode返回的初步理解为这个对象的物理地址,为什么会有这样一个结论还是有点不理解

hashcode()不等,一定能推出equals()也不等,hashcode返回的对象地址,并不能说明对象内容不同吧,也有可能对象内容相同地址不一样吧,equals重写后比较的是内容啊,所以我觉得hashcode不等,可能推出equals相等啊
反之还有一个结论,
equals()相等的两个对象,hashcode()一定相等;同样,内容一样并不能说明地址一样啊,求各位高手指点哈,解释一哈,别复制,我慷慨的给予5财富值啊

一般来说如果equals方法相等,hashcode应该返回相同的值,
equals方法我们可以重写实现,你可以重写成equals相等hashcode不等,但这是不合规范的。
一般我们认为一个对象是否相等,就是看他是否是同一个对象。也就是看地址是不是一样的,但事实上我们在使用时并不是同一个对象时也需要equals方法能够成立,所以就有了hashcode,是用来标记对象是否相同的。如果hashcode相等,则表示equals是相等的,在HaspMap中就是通过hashcode去判断有没有重复的元素 。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-30
equals 等不等 完全取决于那个类自己的实现
只是java 默认那个equals里面 用了hascode而已

重写后 完全就是看你自己怎么写的了
equals 本身 和hascode 没什么大联系