概念
如果没有重写equals(), equals 比较的是两个对象的地址是否相等。
Java 类中重写equals() 的基本类
String
Date
如何重写 equals() ?
1. 判断传入的对象是否是 null ,如果是 null ,返回 false;
2. 判断两个对象的地址是否相等,如果相等,返回 true;
3. 判断两个对象是否属于同一个类型,如果是,返回true;
4. 比较两个对象的属性值是否相等
为什么重写equals(), 要重写 hashCode() ?
如果不重写,在放入map 中取值时会有问题,相同的key 获取的值不想等。
另外,hashCode() 规定:两个对象如果 equals() 相等,应该返回的hashCode() 也相等。