java - hashCode() 的困境 - Java

标签 java object hashcode

我有以下代码,

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/

相关文章:

Java Eclipse Helios 2 发布 Java SE 7 支持

object - Delphi对象: shortcut for TObjectList iteration

java - anyMatch 和 allMatch

ruby-on-rails - Ruby:用另一个数组对数组进行排序

object - 如果 vue.js 2 上的对象为空,如何添加条件?

Java - TreeSet 和 hashCode()

dart - 在 Dart 中覆盖哈希码的好方法是什么?

java - 为什么 java 设计者强制要求 if obj1.equals(obj2) then obj1.hashCode() MUST Be == obj2.hashCode()

java - 使用 Kotlin 开发时的 Android getGlobalApplicationContext()

java - 集成 Spring MVC 4 和 Hibernate 5