Java语言规范要求equals方法具有以下的特性:
1.自反性 :对于任何非空引用x, x.equals(x) 应该返回true
2.对称性: 对于任何引用x和y, 当且仅当y.equals(x)返回true, x.equals(y)也应当返回true
3.传递性 : 对于任何引用x, y和z, 如果 x.equals(y)返回true, y.equals(z)返回true, x.equals(z)也应当返回true
4. 一致性 :如果x和y引用的对象没有发生变化,反复调用x.equals(y)应该返回同样的结果
5. 对于任意非空引用x, x.equals(null)应该返回false.