一、equals方法
Object類中的equals方法用於檢測一個對象是否等於另外一個對象。Java語言規范要求equals方法具有下面的特性:
(1)自反性:對於任何非空引用x,x.equals(x)應該返回true
(2)對稱性:對於任何引用x和y,當且僅當y.equals(x)返回true,則x.equals(y)也應該返回true
(3)傳遞性:對於任何引用x、y和z,如果x.equals(y)返回true,y.equals(z)返回true,則x.equals(z)也應該返回true
(4)一致性:如果x和y引用的對象沒有發生變化,反復調用x.equals(y)應該返回同樣的結果。
(5)對於任何非空引用x,x.equals(null)應該返回false
instanceof操作符,如果用來判斷子類對象和父類,則會返回true,例如subobj instanceof SuperClass 會返回true,所以,instanceof操作符並不是完美無瑕。
二、hashCode方法
字符串的散列碼是由內容導出的;如果一個類中沒有定義hashCode方法,則它的散列碼是由Object類的默認hashCode方法導出的對象存儲地址。
三、toString方法
如果需要打印數組,則需要調用Arrays.toString(arr),要想打印多維數組,則需要調用Arrays.deepToString(arr)