0

在eclipse的自动生成equals方法中,第一行比较引用相等

if(this == obj) return true;

据我所知 == 并不是真正的相等检查,它只检查 2 个引用是否指向同一个内存位置。那么为什么要使用它呢?

4

2 回答 2

3

假设你有两个参考

Foo foo = new Foo("some value", " many parameter", 1, 2, 3, 5); 
Foo foo2 = foo;

if (foo2.equals(foo))
    // do something

哪里Foo是具有一堆字段的类,这些字段都需要相等才能实现对象相等。

尽早比较引用相等性使您不必检查引用对象上的每个字段,因为它们保证相等。

于 2013-11-13T00:54:49.900 回答
1

检查引用相等性的速度非常快,因此他们最好在进行更积极的比较之前将其排除在外。

于 2013-11-13T00:57:04.887 回答