作者noapaov (單身漢)
看板java
標題Re: [問題] HashCode 與 記憶體位置的關聯
時間Mon May 25 08:37:46 2015
感謝各位的推文, 我又查詢了些相關資料,
證明Object.hashCode()會傳的hash_code與記憶體有關係
以下是Java深入淺出第二版提供的資訊第559頁, 大家可以參考看看
無法貼網址, 我直接key內容 :
"hashCode()預設的行為是會回傳每個物件的序號( 大部分的JAVA版本
是依據記憶體位置計算此序號) " 大家可以Google上述內容
所以應該是說, Object.hashCode()的回傳值是與記憶體有關連的
※ 引述《pttworld (批踢踢世界)》之銘言:
: 稍微看了一下原文和推文,有的是講值,有的是講方法,難以聚焦討論。
: 以下講方法是hashCode(),使用hashCode代表雜湊數值,是個值。
: hashCode合理為hashCode()的回傳值。
: 我用Y或N標註,僅供參考,其中我改一個中文字會讓你的表達更清楚。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.181.227
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1432514268.A.BE6.html
※ 編輯: noapaov (114.34.181.227), 05/25/2015 08:43:02
1F:推 pttworld: Y 05/25 08:54
2F:→ Killercat: 錯很大,請見我下面推文... 05/25 16:38
3F:→ Killercat: 其實我真的覺得OpenJDK是個寶,沒事真的能挖一挖... 05/25 16:39
4F:→ Killercat: 誒,我仔細看了一下cpp實作,看起來跟記憶體有關 05/25 16:43
5F:→ Killercat: 不過我沒辦法確定他現在跑的到底是那一組... 05/25 16:44
6F:→ Killercat: 這個問題在於她註釋跟大多數實作都跟記憶體無關 05/25 16:45
7F:→ Killercat: 包含註解寫的產生方法 可是我在原始碼看到一行 05/25 16:45
8F:→ Killercat: 在某些不明情況下 value = intptr_t(obj) ; 05/25 16:46
9F:→ Killercat: 不過目前來說,我仍然認為跟記憶體無關的可能比較大 05/25 16:46
10F:→ Killercat: 看起來函數的hash_code指的是產生方法 但是我找不到 05/25 16:47
11F:→ Killercat: 產生方法的定義,這是比較模糊的地方... 05/25 16:47
12F:推 ctrlbreak: 你追一下code大概就會知道, 記憶體位置的概念其實比較 05/25 20:19
13F:→ ctrlbreak: 像Array的Index, 並不是memory address 05/25 20:21
14F:推 ctrlbreak: 我說的是java記憶體位置概念, 不適用其他語言 XD 05/25 20:31