gpt4 book ai didi

java - 如何强制 JVM 清除 WeakHashMap 的所有 WeakReferences/keys

转载 作者:搜寻专家 更新时间:2023-11-01 03:43:51 27 4
gpt4 key购买 nike

有没有办法强制 jvm 清除所有 WeakReferences(或 WeakHashMap 的所有键)如果它们不再被常规引用引用?

触发垃圾收集将不起作用,弱引用仍然存在。(我读到弱引用只有在内存不足时才会被清除)。

最佳答案

SoftReferences 在内存不足时被清除。

WeakReferences 被更频繁地清除(就像对象只剩下弱引用时一样)

查看包的官方 Java 文档(包文档有助于解释): http://download.oracle.com/javase/1.5.0/docs/api/java/lang/ref/package-summary.html

您能否引用您在关机时从 Tomcat 看到的确切消息?你确定你没有误解它吗?对 Tomcat 来说重要的是没有硬引用为 ServletContext 固定 ClassLoader。

关于 WeakHashMap:http://download.oracle.com/javase/1.5.0/docs/api/java/util/WeakHashMap.html只有 key 是微弱的。你用什么作为“值(value)”?值(value)是否强烈地 self 引用自己的“ key ”?有了这个,我质疑你对 WeakHashMap 为你提供什么的理解(假设它是完成这项工作的正确工具)。

根据我的经验,您可以使用 System.gc() 清除 Sun JVM 5 的弱引用,这对我来说在第一次 GC 扫描时 100% 可靠。但他们不能保证这一点。

关于java - 如何强制 JVM 清除 WeakHashMap 的所有 WeakReferences/keys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7743553/

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