现在的位置: 首页 > 综合 > 正文

关于对象回收的方法 public void finalize()

2014年02月06日 ⁄ 综合 ⁄ 共 505字 ⁄ 字号 评论关闭

总的来说注意以下两个关键点:

  当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

  对于任何给定对象,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 class T2 {

    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由垃圾回收器调用此方法

抱歉!评论已关闭.