一、簡介
java.lang.Object類中有非常重要的兩個方法:
public boolean equals(Object obj)
public int hashCode()
Object
類是類繼承結構的基礎,所以是每一個類的父類。所有的對象,包括數組,都實現了在Object
類中定義的方法。
Object類中equals方法的定義如下:
public boolean equals(Object obj) {
return (this == obj);
}
明顯地,該函數定義是對兩個對象的地址進行比較。
Object類中hashcode方法的定義如下:
public native int hashCode();
該函數定義說明它是一個本地方法,和本地機器有關。
二、總結
Java對象的eqauls方法和hashCode方法是這樣規定的:
1、相等(相同)的對象必須具有相等的哈希碼(或者散列碼)。
2、如果兩個對象的hashCode相同,它們並不一定相同。