我知道jvm中的GC会在收到对象后发现对象被弱引用,但是有人说可能需要几次gc才能让jvm找到弱引用的对象,我真的不明白它,是否有人可以解释它,或者告诉我它是真的吗?谢谢!
答案 0 :(得分:0)
是的,在对象被销毁之前需要一段时间。我不知道Java WeakReference有什么问题或者它对性能的影响。
没有办法在Java和其他高级语言(如C#)中手动销毁对象。垃圾收集器做那项工作。在循环中,在没有参考的情况下完成并销毁对象(即强引用)。弱引用不会阻止垃圾收集器收集对象。引用类型之间的差异被解释为here on StackOverflow。
无法触发收集周期。您可以通过System.gc()
戳垃圾收集器,但它不会导致立即执行并“多次”。
答案 1 :(得分:0)
用于所有实际目的的垃圾收集是不确定的。你根本无法预测什么时候它会清理一些东西,如果它会导致你的应用暂停等等。大多数它表现良好的时候。你永远不应该依赖底层的gc动作或终结者。