1)當打印引用時,實際上會打印出引用所指對象的toString()方法的返回值,因爲每個類都直接或間接的繼承Object類,因此每個類都有toString()方法。
toString()返回的是:getClass().getName() + '@' + Integer.toHexString(hashCode())
2)equals()方法,該方法定義在Object類當中,因此Java中的每個類都具有該方法,對於Object類的equals()方法來說,它判斷調用equals()方法的引用與傳進來的引用是否一致,即這兩個引用是否指向同一對象;對於Object類的equals()方法來說,它等價於==。
3)equals()特性:
a)自反性:x.equals(x)應該返回true
b)對稱性:x.equals(y)爲true,那麼y.equals也爲true
c)傳遞性:x.equals(y)爲true,並且y.equals(z)爲true,那麼x.equals(z)也應該爲true
d)一致性:x.equals(y)的第一次調用爲true,那麼x.equals(y)的第二次、第三次、第n次調用也應該爲true,前提條件是在比較之間沒有修改x也沒修改y
e)對於非空引用x,x.equals(null)返回false
4)關於Object類的hashCode()方法的特點:
a)在Java應用的一次執行過程當中,對於同一個對象的hashCode方法的多次調用,他們應該返回同樣的值(前提是該對象的信息沒有發生變化)。
b)對於兩個對象來說,如果使用equals方法比較返回爲true,那麼兩個對象的hashCode值一定是相同的。
c)對於兩個對象來說,如果使用equals方法比較返回false,那麼這兩個對象的hashCode值不要求一定不同(可以相同,可以不同),但如果不同可以提高應用性能。
e)對於Object類來說,不同的Object對象的hashCode值是不同的(Object類的hashCode值表示的是對象的地
5)getClass()返回調用該方法的對象在運行期的的類型。