Java的WeakHashMap经常被认为对缓存很有用。虽然它的弱引用是根据map的键定义的,而不是它的值,但这似乎很奇怪。我的意思是,这是我想要缓存的值,当除了缓存之外没有其他人强烈引用它们时,我希望对它们进行垃圾回收,不是吗?
持有对键的弱引用在哪方面有帮助?如果你做一个ExpensiveObject o = weakHashMap.get("some_key")
,那么我希望缓存保持'o‘,直到调用者不再持有强引用,而我一点也不关心string对象"some_key“。
我是不是遗漏了什么?
https://stackoverflow.com/questions/1802809
复制相似问题