天天看點

Java中的Object類

關于Object類的equals()方法的特點:

1) 自反性:對于非空引用x來說,x.equals(x)一定傳回true;

2) 對稱性:對于非空引用x和y來說,如果x.equals(y)傳回true,那麼y.equals(x)一定傳回true;

3) 傳遞性:對于非空引用x、y和z來說,如果x.equals(y)傳回true,并且y.equals(z)傳回true,那麼x.equals(z)一定傳回true;

4) 一緻性:對于非空引用x和y來說,如果x.equals(y)傳回true,那麼第二次、第三次、第n次調用equals方法都會傳回true,前提條件是在調用期間x和y所指向的對象都不發生改變,反之亦然;

5) 對于非空引用x來說,x.equals(null)傳回false。

關于Object類的hashCode()方法的特點:

1) 在一次Java程式運作期間,多次對同一個對象調用hashCode方法,傳回的int值是一緻的,前提是多次調用期間該對象沒有發生改變;這一次Java程式運作期間的某對象的hashCode方法傳回值不一定和上一次Java程式運作期間的該對象的hashCode方法傳回值一緻。

2) 如果兩個對象通過equals方法比較傳回為true,那麼他們的hashCode方法的傳回值是相同的整數;

3) 如果兩個對象通過equals方法比較傳回為false,那麼他們的hashCode方法的傳回值一般情況都是不相同的整數。