[email protected]Java:[email protected]
好的,f21代表軟件包。 人類類型。
任何人都可以簡單地解釋爲什麼有一個「@」後跟隨機字符。隨機字符代表什麼(在記憶中的位置?)。
我收到此當我做以下,並沒有宣佈一個toString()方法:
System.out.println(myObject);
[email protected]Java:[email protected]
好的,f21代表軟件包。 人類類型。
任何人都可以簡單地解釋爲什麼有一個「@」後跟隨機字符。隨機字符代表什麼(在記憶中的位置?)。
我收到此當我做以下,並沒有宣佈一個toString()方法:
System.out.println(myObject);
如果你不覆蓋在你的類的toString()方法,Object類的toString()會調用。
System.out.println(myObject);// this will call toString() by default.
下面是java.Lang.Object類的toString的實施。
The {@code toString} method for class {@code Object} returns a string consisting of the name of the class of which the object is an instance, the at-sign character `{@code @}', and the unsigned hexadecimal representation of the hash code of the object
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
因此,應用相同的到[email protected]
:
21.Person(全類名)+ @ + 37ee92(該hasgcode的十六進制版本)
它調用toString()實現,如果你沒有覆蓋這個方法,那麼它會調用Object
的版本,其實現如下
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
這是一個實例
如果不重寫toString()
方法,通過Object
提供的一個用於的哈希碼的十六進制版本。它the following:
的
toString
方法類Object
返回字符串由其中的對象是一個實例,該符號字符@
的類的名稱,而散列碼的無符號十六進制表示法的對象。換句話說,此方法返回一個字符串等於的值:getClass().getName() + '@' + Integer.toHexString(hashCode())
「隨機」字符是您的對象的哈希碼,以十六進制。