equals方法

1. Object的equals方法和String的equals方法区别

   Object的equals方法---------源码如下:

equals方法

   两个对象的地址进行比计较--------比较引用是否相同。即便两个对象的各个属性值都相同,这两个对象也不相同。

    String的equals方法----源码如下:

equals方法

   进行内容的比较,如果两个对象的内容相同,则相同(示例如下)。

equals方法


说明:跟String一样重写equals方法的类还有,Double,Integer,Float...

2. 是否重写

   如果想要新建类对象的内容相同就判定两个对象相同,那就重写equals方法,否则不用重写。

3. 重写规则

   <1> 对称性:如果x.equals(y)返回是“true”,那么y.equals(x)也应该返回是“true”。
   <2> 反射性:x.equals(x)必须返回是“true”。
   <3> 类推性:如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那么z.equals(x)也应该返回是“true”。

转载于:https://my.oschina.net/u/1989867/blog/526378