Java 为什么jvm需要几次gc才能找到weakreference?
我知道jvm中的GC一旦发现对象是弱引用的,就会收集该对象,但有人说jvm可能需要多次GC才能找到弱引用的对象,我真的不明白,有人能解释一下,或者告诉我这是真的吗?谢谢 是的,需要一段时间才能销毁该对象。我不知道Java WeakReference有什么问题,也不知道它对性能的影响Java 为什么jvm需要几次gc才能找到weakreference?,java,garbage-collection,jvm,weak-references,Java,Garbage Collection,Jvm,Weak References,我知道jvm中的GC一旦发现对象是弱引用的,就会收集该对象,但有人说jvm可能需要多次GC才能找到弱引用的对象,我真的不明白,有人能解释一下,或者告诉我这是真的吗?谢谢 是的,需要一段时间才能销毁该对象。我不知道Java WeakReference有什么问题,也不知道它对性能的影响 可能会导致额外的垃圾收集 您无法知道循环何时执行。垃圾收集器在自己的后台线程中循环工作 WeakReferences的管理取决于JRE的实现(就像所有东西一样),另请参见 在Java和其他高级语言(例如C#)中,无法
无法触发收集周期。您可以通过
System.gc()
戳垃圾收集器,但它不会立即执行并“花费多次时间”。所有实际用途的垃圾收集都是不确定的。你根本无法预测它何时会清理某些东西,是否会导致你的应用程序短暂暂停等。大多数时候,它表现良好。您永远不应该依赖底层gc操作或终结器