gpt4 book ai didi

java - WeakHashMap - 它的目的是什么以及应该如何正确使用它

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:56:15 26 4
gpt4 key购买 nike

今天我找到了this blog post其中讨论了 WeakHashMap 在缓存上的用法。有趣的是,不是值,而是键被存储为弱引用,当引用不再存在时,整个键值对将从 WeakHashMap 中删除。因此,这将导致发生以下情况:

WeakHashMap map = new WeakHashMap();
SomeClass myReference1 = ....
map.put(new Long(10), myReference1);
// do some stuff, but keep the myReference1 variable around!
SomeClass myReference2 = map.get(new Long(10)); // query the cache
if (myReference2 == null) {
// this is likely to happen because the reference to the first new Long(10) object
// might have been garbage-collected at this point
}

我很好奇什么场景会利用 WeakHashMap 类?

最佳答案

当您想将元数据附加到您无法控制其生命周期的对象时。一个常见的例子是 ClassLoader,但必须注意避免创建值->键引用循环。

关于java - WeakHashMap - 它的目的是什么以及应该如何正确使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6442862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com