可能重複:
Why is softKeys() deprecated in Guava 10?爲什麼MapMaker.softKeys()已棄用?
爲什麼MapMaker.softKeys()
Javadoc中被棄用的原因:
使用softValues創建內存敏感的映射,或weakKeys創建 一個不包含對密鑰的強引用的映射。 此方法 預定要刪除在2013年1月
這種方法打破。使用軟鍵的地圖與具有弱鍵的地圖相比不具有功能優勢,並且通過在地圖中保留 不可達元素而浪費了內存。如果您的目標是創建一個 內存敏感的映射,請考慮使用軟值。
指定存儲在映射中的每個鍵(不是值)應該包含在SoftReference中(默認情況下使用強引用) 。 爲了響應內存需求,軟引用對象將以全局最近最少使用的方式進行垃圾回收。
我不明白爲什麼軟值更喜歡軟鍵?任何情況? MapMaker.softValues()
仍然可用。謝謝!