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

看板java作者 (單身漢)時間10年前 (2015/05/25 08:37), 10年前編輯推噓3(3011)
留言14則, 3人參與, 最新討論串3/5 (看更多)
感謝各位的推文, 我又查詢了些相關資料, 證明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://www.ptt.cc/bbs/java/M.1432514268.A.BE6.html ※ 編輯: noapaov (114.34.181.227), 05/25/2015 08:43:02

05/25 08:54, , 1F
Y
05/25 08:54, 1F

05/25 16:38, , 2F
錯很大,請見我下面推文...
05/25 16:38, 2F

05/25 16:39, , 3F
其實我真的覺得OpenJDK是個寶,沒事真的能挖一挖...
05/25 16:39, 3F

05/25 16:43, , 4F
誒,我仔細看了一下cpp實作,看起來跟記憶體有關
05/25 16:43, 4F

05/25 16:44, , 5F
不過我沒辦法確定他現在跑的到底是那一組...
05/25 16:44, 5F

05/25 16:45, , 6F
這個問題在於她註釋跟大多數實作都跟記憶體無關
05/25 16:45, 6F

05/25 16:45, , 7F
包含註解寫的產生方法 可是我在原始碼看到一行
05/25 16:45, 7F

05/25 16:46, , 8F
在某些不明情況下 value = intptr_t(obj) ;
05/25 16:46, 8F

05/25 16:46, , 9F
不過目前來說,我仍然認為跟記憶體無關的可能比較大
05/25 16:46, 9F

05/25 16:47, , 10F
看起來函數的hash_code指的是產生方法 但是我找不到
05/25 16:47, 10F

05/25 16:47, , 11F
產生方法的定義,這是比較模糊的地方...
05/25 16:47, 11F

05/25 20:19, , 12F
你追一下code大概就會知道, 記憶體位置的概念其實比較
05/25 20:19, 12F

05/25 20:21, , 13F
像Array的Index, 並不是memory address
05/25 20:21, 13F

05/25 20:31, , 14F
我說的是java記憶體位置概念, 不適用其他語言 XD
05/25 20:31, 14F
文章代碼(AID): #1LOcxSlc (java)
文章代碼(AID): #1LOcxSlc (java)