1. 关于Object 类的equals 方法的特点
a 自反性:x.equals(x)应该返回true
b 对称性:x.equals(y)为true ,那么y.equals(x)也为true 。
c 传递性:x.equals(y)为 true 并且y.equals(z)为true ,那么x.equals(z)也应该为true 。
d 一致性:x.equals(y)的第一次调用为true ,那么x.equals(y)的第二次、第三次、第n 次调用也应该为true ,前提条件是在比较之间没有修改x 也没有修改y 。
e 对于非空引用x ,x.equals(null)返回false 。
2 关于Object 类的hashCode()方法的特点:
a 在Java 应用的一次执行过程当中,对于同一个对象的 hashCode 方法的多次调用,他们应该返回同样的值 (前提是该对象的信息没有发生变化)。
b 对于两个对象来说,如果使用equals 方法比较返回true,那么这两个对象的hashCode 值一定是相同的。
c 对于两个对象来说,如果使用equals 方法比较返回false ,那么这两个对象的hashCode 值不要求一定不同 (可以相同,可以不同),但是如果不同则可以提高应用的性能。
d 对于Object 类来说,不同的Object 对象的hashCode 值是不同的(Object 类的hashCode 值表示的是对象的地址)。
|