java.lang.Object類

java.lang.Object類:java.lang包在使用的時候無需顯示導入,編譯時由編譯器自動幫我們導入。

        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()返回調用該方法的對象在運行期的的類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章