我有以下代码,
Object testA = new Object();
Object testB = testA;
System.out.println("A:"+testA.hashCode())
System.out.println("B:"+testB.hashCode())
根据上述内容,我得到了两个对象的相同哈希码。我知道 testB 被分配给了 testA,因此它可能具有相同的哈希码,但是应该有一种方法可以唯一地识别这两个对象的差异,对吗?
如果有明显遗漏的地方,请告诉我!
最佳答案
however there should be a way to uniquely identify the difference in both these objects right?
没有区别,因为没有两个对象。只有一个对象被两个变量引用。
理论上,两个不同的对象可能有相同的hashCode
。您可以使用 equals
或使用 ==
来区分它们。如果您不覆盖 equals
,默认情况下它的行为与 ==
相同。
关于java - hashCode() 的困境 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31022390/