== 和 equals
功能:判断两个对象是不是同一个对象。
- == : 基本数据类型 比较的是值,引用类型比较的是内存地址
- equals():
- 类没有覆盖 equals() 方法:相当于通过“==”比较这两个对象。
- 类覆盖了 equals() 方法:比较两个对象的内容相等。一般都会覆盖 equals() 方法(像Int,String类)
Tips:object的equals方法是比较的对象的内存地址,而String(重写了)的equals方法比较的是对象的值/内容。
重写equals的同时,需要重写hashCode()方法么?为什么?
答:重写equals()方法时,也需要对hashCode()方法进行重写。
值相同的对象必须有相同的hashCode,也就是说equals()结果为相同,那么hashcode也要相同,equals()结果为不相同,那么hashcode也不相同;说明equals方法和hashCode方法应该成对出现,当我们对equals方法进行重写时,也要对hashCode方法进行重写。