如果我覆盖finalize()并引用一个对象会发生什么。这个对象会被垃圾收集吗?从内存中清除该对象的另一种方法是什么?
答案 0 :(得分:1)
答案 1 :(得分:0)
Finalize()旨在被垃圾收集器调用以删除被引用的对象,如果在调用Finalize()之前重新引用了一个对象,那么你就可以简单地阻止GC破坏它,因为它现在有引用再次它是安全的,假设在它被取消引用期间没有采取,这可能会导致问题。
答案 2 :(得分:0)
请记住,finalize只能由JVM调用一次,因此子序列GC只会运行而不会再给予重新分配引用,保存对象等机会。可能会导致内存泄漏。