Java 重写finalize(),引用其中的对象
如果重写finalize()并引用一个对象,会发生什么。那个对象会被垃圾收集吗?从内存中清除该对象的另一种方法是什么 Finalize()被设计为由垃圾收集器调用以删除取消引用的对象,如果在调用Finalize()之前重新引用了一个对象,那么您可以简单地防止GC破坏它,因为它现在又有引用了,这是安全的,即假定它在取消引用期间没有被获取,这可能会导致问题。来自: finalize方法可以执行任何操作,包括使此对象再次可供其他线程使用 然而: 对于任何给定对象,Java虚拟机都不会多次调用finalize方法Java 重写finalize(),引用其中的对象,java,Java,如果重写finalize()并引用一个对象,会发生什么。那个对象会被垃圾收集吗?从内存中清除该对象的另一种方法是什么 Finalize()被设计为由垃圾收集器调用以删除取消引用的对象,如果在调用Finalize()之前重新引用了一个对象,那么您可以简单地防止GC破坏它,因为它现在又有引用了,这是安全的,即假定它在取消引用期间没有被获取,这可能会导致问题。来自: finalize方法可以执行任何操作,包括使此对象再次可供其他线程使用 然而: 对于任何给定对象,Java虚拟机都不会多次调用final
记住,finalize只被JVM调用一次,因此子序列GCs将只运行一次,而不给再次分配引用、保存对象等机会。可能会导致内存泄漏。不要这样做。可能会造成内存泄漏。你想解决什么问题?请检查这个。你想达到什么目的?