可能重複:
What’s the implementation of hashCode in java Object?如何實現Object類中的hashCode()方法?
雖然我是通過對象類瀏覽,我發現僅存在哈希碼()方法的聲明。執行部分在哪裏?如果沒有實現,hashCode()方法如何返回結果?
可能重複:
What’s the implementation of hashCode in java Object?如何實現Object類中的hashCode()方法?
雖然我是通過對象類瀏覽,我發現僅存在哈希碼()方法的聲明。執行部分在哪裏?如果沒有實現,hashCode()方法如何返回結果?
它在本地代碼執行。至於實現,這有點棘手 - 你可以改變默認實現。如果您查看「Open JDK」來源,您將看到以下選項:
-XX:hashCode = n(從0到5)。
你可以在這裏找到詳細的說明:http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/tip/src/share/vm/runtime/synchronizer.cpp
考慮源代碼和static inline intptr_t get_next_hash()
函數的註釋。
很高興知道...不知道你是否可以自定義這一點。 – ManojGumber
這在我看來是實際的答案! – TechSpellBound
在哪裏實現部分?
它是由已經框架內執行。 Please see the documentation.
如果沒有實現方法,hashCode()方法如何返回結果?
但是,如果您創建自定義類型,則需要負責生成int
值,該值可以很好地表示對象的當前狀態。 Here is a good example of that.
那些想降低問題的人,請小心分享一個答案。謝謝 –