问题标签 [weakhashmap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - HashMap 与 WeakHashMap 一起被垃圾收集?
据我了解,HashMap 不应该被垃圾收集,WeakHashMap 应该被垃圾收集,但是当我运行这段代码时,hashmap 和weakhashmap 都被垃圾收集了。
输出:
仅使用 HashMap 时,GC 不会对其进行垃圾收集。
输出:
java - WeakHashMap 是在不断增长,还是清除了垃圾键?
我正在尝试WeakHashMap
用作弱引用的并发Set
。
当一个元素进入垃圾收集时,我的集合继续将其报告为集合的一部分。因此,地图似乎在不断增长。
文档说:
当一个键被丢弃时,它的条目就会从地图中有效地删除,......</p>
但在实践中似乎并非如此。
有没有什么地方可以WeakHashMap
清除碎屑?
java - Java WeakHashMap 什么时候会清理空键?
在下面的代码中nameRef.get()
是 null , aftername = null
和System.gc()
。
WeakHashMap 基于 WeakReference。最后,我认为map.size()
会是 0。事实上,它是 1。
Java WeakHashMap 什么时候清理null
密钥?
java - Java WeakHashMap 清理
我试图弄清楚在收集垃圾后 WeakHashMap 是如何清理的。许多人可能知道,当 WeakHashMap 的键被垃圾回收时,它会自动删除。但是,例如,如果我做这样的事情:
ArrayList 不会清除空的 WeakReference 对象,但为什么 WeakHashMap 会呢?哪个组件负责此自动条目删除。我在 WeakHashMap 源代码中看不到任何可以做到这一点的代码。
java - Java7 WeakHashMap isEmpty() 似乎是错误的
我正在尝试使用 Java7 的 WeakHashMap,但我发现它的 isEmpty() 方法给了我错误的结果。
实际结果:
错误的
真的
{}
也就是说,
map.isEmpty() 和 map.keySet().isEmpty() 不一致。有人可以帮我理解吗?非常感谢。
java - 非同步的 WeakHashMap 有害吗?
我有一个看起来像这样的代码。
我已经知道WeakHashMap
不同步。我只是不关心Pattern
s 的多重构造。
如果PATTERNS
是多线程环境,是否应该同步?
java - 如何将嵌套数组列表转换为数组列表?
我已经存储HashMap
到一个ArrayList
,现在我想要ArrayList
不同数组中的每个位置,所以请有人告诉我这怎么可能?
我的数组列表是这样的:
java - 在weakHashMap中,如果我更新或更改之前存储的键对象,垃圾收集器会删除键值对
我已经将一个对象作为键存储在WeakHashMap
. 现在,如果我更改它的值,然后调用 GC 和 print map
,那么什么都没有。
- 预期输出:
{200,"sgdjsgd"}
- 实际输出:
{}
java - 为什么我的 WeakHashMap 条目不会被 GC 删除?
我有一个类来管理多个功能的锁定对象。我发现 WeakHashMap 应该符合我的要求。这是我的代码:
但是,做了一个简单的测试后,我意识到锁对象在GC之后不会被删除。
你能告诉我我的实施有什么问题吗?先感谢您!
java - Java - 应用程序中使用的 HashMap 和 WeakHashMap 引用
只是试图从 GC 的角度理解一些东西
我的理解是,一旦这个方法调用离开堆栈,where
无论使用HashMap
或都没有引用WeakHashMap
- 但由于弱引用是弱可访问的,这不会更快 GCd 吗?但是如果方法调用离开堆栈,那么无论如何都没有可访问的引用。
我想我真正的问题是-“WeakHashMap<>
在这里使用实际上很重要”-我认为这是“不,因为影响微不足道”-但是第二个答案不会损害我的知识。