Object引用和Object哈希代码之间的区别

什么是Object的引用和java中相同对象的哈希码值之间的区别?

它们完全是两个不同的概念。

Cat oldCat = new Cat(); Cat newCat = new Cat(); Cat oldCatRef = oldCat; 

在上面的示例中, oldCatoldCatRef是对同一对象的引用。 由于它们引用相同的对象,因此它们的哈希码将是相同的。

但是oldCatnewCat不会引用同一个对象。 它们是对两个不同对象的引用。 但是根据它们的实现,它们可能具有相同的hashCodehashCode只是Object类中的一个方法,您可以覆盖它。

编辑 (来自PeterJ):根据JavaSE6对象规范,如果oldCat.equals(newCat)那么两者的哈希码应该相等。 遵守合同是很好的编程方式

您可能也想检查此问题的答案:

哈希码与对象的引用或地址之间的区别?

对Object的引用就是这样。 对对象的引用。

Object的hashcode是hashCode()方法的结果,取决于实现可能是各种各样的东西。 默认的hashCode()

通常通过将对象的内部地址转换为整数来实现,但JavaTM编程语言不需要此实现技术

两个不同的对象可以具有相同的hashCodereference是指向对象的唯一指针,其中hashCode是一个方便的计算属性。