2013-04-09 64 views
0

例如,如果我創建一個A類型的對象,的java的hashCode()函數和對象

A a = new A(); 

則是指向在堆上一個A型對象堆棧的引用。 我的問題是,如果我調用a.hashCode(),將返回哪個哈希碼,參考的哈希碼或對象的哈希碼? 如果它是對象的哈希碼,我怎樣才能得到參考的哈希碼? 任何人都可以給我一些提示plz?

回答

3

hashCode()只是一個非靜態方法,就像任何其他非靜態方法一樣。它由A定義,或由基類AObject,在最壞的情況下)定義。所發生的只是該方法在有問題的實例上被調用。

我怎樣才能得到引用的哈希碼?

你不能,因爲這沒有意義。

+0

謝謝奧利,說得通 – Bpache 2013-04-09 09:37:08

0

你可以通過調用獲得參考的哈希碼:

System.identityHashCode(a); 

這是數據結構,例如java.util.IdentityHashMap中是基於什麼。

相關問題