总的来说注意以下两个关键点:
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
对于任何给定对象,Java 虚拟机最多只调用一次 finalize 方法。
直接上个例子:
public class T2 {
public static void main(String[] args) {
T2 t2 = new T2();
t2 = null;
}
public void finalize(){
System.out.println("T2:finalize()");
}
}
这段代码执行后,最可能没有任何输出。
public static void main(String[] args) {
T2 t2 = new T2();
t2 = null;
System.gc();
}
public void finalize(){
System.out.println("T2:finalize()");
}
}
这段代码最可能输出:T2:finalize(), 原因是finalize由垃圾回收器调用此方法
本文探讨了Java中垃圾回收机制的基本概念,并通过实例详细解释了finalize方法的作用及调用时机。文章指出,当垃圾回收器确认对象不再被引用时会调用此方法,但每个对象的finalize方法最多只会被调用一次。
784

被折叠的 条评论
为什么被折叠?



