2012-12-05 194 views
0

[email protected]Java:[email protected]

好的,f21代表軟件包。 人類類型。

任何人都可以簡單地解釋爲什麼有一個「@」後跟隨機字符。隨機字符代表什麼(在記憶中的位置?)。

我收到此當我做以下,並沒有宣佈一個toString()方法:

System.out.println(myObject); 

回答

3

如果你不覆蓋在你的類的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的十六進制版本)

0

它調用toString()實現,如果你沒有覆蓋這個方法,那麼它會調用Object的版本,其實現如下

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

這是一個實例

0

如果不重寫toString()方法,通過Object提供的一個用於的哈希碼的十六進制版本。它the following

toString方法類Object返回字符串由其中的對象是一個實例,該符號字符@的類的名稱,而散列碼的無符號十六進制表示法的對象。換句話說,此方法返回一個字符串等於的值:

getClass().getName() + '@' + Integer.toHexString(hashCode()) 

「隨機」字符是您的對象的哈希碼,以十六進制。

相關問題