天天看點

淺談Object類的toString方法

        我們都知道,當我們需要列印一個對象時,都是直接調用的toString方法,而這個方法即使不重寫,也是可以調用的,因為它是Object類的方法,我們都知道,在java中,所有的類的超類都是Object.Object這個類裡面的方法顯的尤其重要,toString這個方法呢,就是為了讓我們能得到一個對象的文本表現形式,進而窺測這個對象裡面的屬性。

       通常我們在不重寫時,可能會得到這樣的一串結果

[email protected]
           

那這個東西到底是什麼呢,尤其是後面這一串是什麼鬼

看一下源碼就知道了

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
           

其實很簡單,這個結果就是上面拼接出來的,hashCode是一個對象在堆裡面對應的一個位址,盡量不要重寫,除非在特定場合下,每一個對象的hashCode不要重複。

       練拳不練功,到頭一場空。我搞了這麼長時間的java,連Object的toString方法是怎麼回事兒,直到今天才明白,說起來實在是慚愧啊.

繼續閱讀