在eclipse的自动生成的equals方法中,第一行比较了引用相等性
if(this == obj) return true;
据我所知= =不是真正的等式检查,它只检查2个引用是否指向同一个内存位置。那为什么要用呢?
答案 0 :(得分:3)
假设您有两个参考
Foo foo = new Foo("some value", " many parameter", 1, 2, 3, 5);
Foo foo2 = foo;
if (foo2.equals(foo))
// do something
其中Foo
是一个具有一堆字段的类,对于对象相等,所有字段都必须相等。
早期比较引用相等性可以使您不必检查引用对象上的每个字段,因为它们保证相等。
答案 1 :(得分:1)
检查参考相等性的速度非常快,因此在进行更积极的比较之前,他们也可以将其排除在外。