hashCode()的困境 - Java

Faz*_*Faz 4 java object hashcode

我有以下代码,

Object testA =  new Object();
Object testB = testA;
System.out.println("A:"+testA.hashCode())
System.out.println("B:"+testB.hashCode())
Run Code Online (Sandbox Code Playgroud)

根据上面的内容,我得到了两个对象的相同哈希码.我知道testB被分配了testA,所以它可以有相同的哈希码,但是应该有一种方法可以唯一地识别这两个对象的差异吗?

如果有遗漏的东西,请告诉我!

Era*_*ran 7

但是应该有一种方法可以唯一地识别这两个对象的差异吗?

没有区别,因为没有两个对象.只有一个对象由两个变量引用.

理论上,两个不同的对象可能具有相同的hashCode.您可以通过使用equals或使用来区分它们==.如果不覆盖equals,则==默认情况下表现为.