一、什么叫两个对象相等?
1. a = b ?
–他们真的是一个东西!
只有在两个引用相等,即都指向同一个对象(同一块内存指针时),才相等(基本数据类型除外)。
2.a.equals(b) ?
—-调用的方法-
调用的方法equals,如果对象没有重写此方法,那么调用超类的equals方法。最终判断是否equals。
3.在一个类重写equals方法时,最好尽量重写hascode方法。
4.equals方法的四个特性:
对称性:如果x.equals(y)返回是“true”,那么y.equals(x)也应该返回 是“true”。
反射性:x.equals(x)必须返回是“true”。
类推性:如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那么z.equals(x)也应该返回是“true”。
还有一致性:如果x.equals(y)返回是“true”,只要x和y内容一直不变,不管你重复x.equals(y)多少次,返回都是“true”