我們有一個名爲Subscriber的類,它擴展了「HashMap」。我們在列表中有很多這個類的實例,每個實例都有一組設置爲地圖的條目,其中一個是「狀態」。我的HashMap如何有一個重複的密鑰?
我們的程序通過調用訂閱服務器上的方法來更新「狀態」值,該方法對HashMap進行了簡單的放置。
我們的程序可以在沒有任何問題的情況下運行多天(幾周),但有時我們在系統的某些其他部分看到了奇怪的行爲,它使用HashMap中的數據。對於我們來說,它看起來好像在一個或多個Subscriber實例中有一個重複的密鑰。
我們設法創建一個jmap轉儲,並根據轉儲查找我在查看VisualVM中的轉儲時設置了兩次「狀態」。
我們目前正在運行的Java版本:1.7.0_25(甲骨文)
這怎麼可能?或者我讀了VisualVM錯誤?
您是從多個主題寫入地圖嗎? – 2014-11-24 11:57:40
什麼課程被用作你的鑰匙地圖? – AlexR 2014-11-24 11:59:33
@JonSkeet是的,我是 – goddva 2014-11-24 12:01:08