- hashcode():获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。若没有重写hashCode()方法,任何对象的hashCode()方法都是不等的。
- equals():判断两个对象是否相等。
- ==:判断两个对象的地址是不是相等,即判断两个对象是不是同一个对象。
public boolean equals(Object obj) {
return (this == obj);
}
equals()相等,hashcode()一定相等;
equals()不相等,hashcode()有可能相等;
hashcode()不等,equals()一定不等;
hashcode()相等,equals()不一定相等。
Object类中的equals方法和“==”是一样的,比较的都是两个对象在占内存中存储的地址,但是String类、Integer类等一些重写了equals方法的类,使其比较的是值是否相等。
可参考https://blog.csdn.net/Dove_Knowledge/article/details/71027170