[問題] HashCode 與 記憶體位置的關聯
最近看了一下書籍, 不太清楚理解是否有錯, 想請教一下各位
Object 類別所提供的 hashCode() method, 主要是返回物件的記憶體位置
經過運算後的整數, 所以與記憶體有密切關係
所以每個物件的HashCode()理論上應該都不一樣, 但是有些子類別繼承後會
進行equals和HashCode的覆寫,例如String、Array等, 所以就有可能造成 :
如果兩個物件使用equals(Object) 測試結果為不相等,
則這兩個物件呼叫 hashCode 時,可以獲得不同的整數結果("可以相同,也可以不同")
所以總結是如果繼承Object類的子類別, 沒有對equals hashCode進行改寫,
那麼這些物件產生的HashCode應該都不一樣, 但如果重寫就有可能造成HashCode相等, 但不一定是參考相同的記憶體位置情況
不知道原理是否是這樣
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.181.227
※ 文章網址: https://www.ptt.cc/bbs/java/M.1432461685.A.96A.html
※ 編輯: noapaov (114.34.181.227), 05/24/2015 18:02:00
※ 編輯: noapaov (114.34.181.227), 05/24/2015 18:02:09
推
05/24 20:48, , 1F
05/24 20:48, 1F
→
05/24 20:48, , 2F
05/24 20:48, 2F
→
05/24 20:48, , 3F
05/24 20:48, 3F
推
05/24 21:11, , 4F
05/24 21:11, 4F
→
05/24 21:11, , 5F
05/24 21:11, 5F
→
05/24 21:43, , 6F
05/24 21:43, 6F
→
05/24 23:40, , 7F
05/24 23:40, 7F
→
05/24 23:41, , 8F
05/24 23:41, 8F
→
05/24 23:41, , 9F
05/24 23:41, 9F
※ 編輯: noapaov (114.34.181.227), 05/24/2015 23:42:00
推
05/25 02:38, , 10F
05/25 02:38, 10F
→
05/25 08:26, , 11F
05/25 08:26, 11F
→
05/25 08:26, , 12F
05/25 08:26, 12F
推
05/25 16:21, , 13F
05/25 16:21, 13F
→
05/25 16:21, , 14F
05/25 16:21, 14F
→
05/25 16:21, , 15F
05/25 16:21, 15F
→
05/25 16:21, , 16F
05/25 16:21, 16F
推
05/25 18:30, , 17F
05/25 18:30, 17F
→
05/25 18:30, , 18F
05/25 18:30, 18F
→
05/25 18:45, , 19F
05/25 18:45, 19F
推
05/25 20:26, , 20F
05/25 20:26, 20F
→
05/25 20:27, , 21F
05/25 20:27, 21F
→
05/26 13:53, , 22F
05/26 13:53, 22F
→
05/26 15:37, , 23F
05/26 15:37, 23F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 5 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章