Re: [問題] HashCode 與 記憶體位置的關聯

作者: noapaov (單身漢)   2015-05-25 08:37:46
感謝各位的推文, 我又查詢了些相關資料,
證明Object.hashCode()會傳的hash_code與記憶體有關係
以下是Java深入淺出第二版提供的資訊第559頁, 大家可以參考看看
無法貼網址, 我直接key內容 :
"hashCode()預設的行為是會回傳每個物件的序號( 大部分的JAVA版本
是依據記憶體位置計算此序號) " 大家可以Google上述內容
所以應該是說, Object.hashCode()的回傳值是與記憶體有關連的
※ 引述《pttworld (批踢踢世界)》之銘言:
: 稍微看了一下原文和推文,有的是講值,有的是講方法,難以聚焦討論。
: 以下講方法是hashCode(),使用hashCode代表雜湊數值,是個值。
: hashCode合理為hashCode()的回傳值。
: 我用Y或N標註,僅供參考,其中我改一個中文字會讓你的表達更清楚。
作者: pttworld (批踢踢世界)   2015-05-25 08:54:00
Y
作者: Killercat (殺人貓™)   2015-05-25 16:38:00
錯很大,請見我下面推文...其實我真的覺得OpenJDK是個寶,沒事真的能挖一挖...誒,我仔細看了一下cpp實作,看起來跟記憶體有關不過我沒辦法確定他現在跑的到底是那一組...這個問題在於她註釋跟大多數實作都跟記憶體無關包含註解寫的產生方法 可是我在原始碼看到一行在某些不明情況下 value = intptr_t(obj) ;不過目前來說,我仍然認為跟記憶體無關的可能比較大看起來函數的hash_code指的是產生方法 但是我找不到產生方法的定義,這是比較模糊的地方...
作者: ctrlbreak   2015-05-25 20:19:00
你追一下code大概就會知道, 記憶體位置的概念其實比較像Array的Index, 並不是memory address我說的是java記憶體位置概念, 不適用其他語言 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com