Java中的==、equals、hasCode方法

==

java 的数据类型分为“基本数据类型” 和“引用数据类型”
在基本数据类型的比较中,== 比的就是基本数据类型变量中所保存的值
在引用数据类型的比较中,== 才比较的是变量所指向的对象的地址。


equals
equals 方法是需要你重写的,也就是说如果通过 equals 方法来比较两个对象,那么 equals 是否返回 true 是由 equals 方法中的比较逻辑来决定的
 
hashCode
hashCode()返回该对象的哈希码值,该值通常是一个由该对象的内部地址转换而来的整数,它的实现主要是为了提高哈希表(例如java.util.Hashtable提供的哈希表)的性能。
 

hashCode()的返回值和equals()的关系如下:
如果x.equals(y)返回“true”,那么x和y的hashCode()必须相等。
如果x.equals(y)返回“false”,那么x和y的hashCode()有可能相等,也有可能不等。
原文地址:https://www.cnblogs.com/tefcricul/p/3144004.html