【转】finalize()方法和System.gc()方法的作用---(部分修改)

//此类说明了 finalize 关键字以及 System.gc() 的作用
/*
     finalize 类似 c++中析构函数,表示对象即将消亡时,调用此方法
     gc() 方法表示把拉级回收器启动,把拉圾收走
*/
 

package test;


class TestGC {


  private String name;

    private int age;


    public TestGC() {

    }

    public TestGC(String name) {

        this.name = name;   

    }

    public TestGC(String name,int age) {

        this(name);  

        this.age = age;

    }

     

    //每个类里面都有finalize方法,和构造方法功能相反,一个是对象产生时调用,一个是对象消亡时调用

    @Override

    public void finalize() {//测试,为了看到效果!!!!!

         

        System.out.println(this.name+"开始清理对象...");

    }

     

    public static void main(String[] args) {

        

        TestGC gc1=new TestGC("gc1");

        TestGC gc2=new TestGC("gc2");

        TestGC gc3=new TestGC("gc3");

        new TestGC("gc4");//该对象一产生即成为拉圾

         

        gc3=null;

        System.gc();

        System.out.println("未清理");//先输出这个,说明什么时间GC,是由JVM控制的。

        gc1=null;//将对象置null,或没有对象指向,均能触发GC

        System.gc();

    }

     

}


/*

输出结果:(gc1、gc2、gc3的输出顺序不确定,也是由JVM决定的)

未清理

gc3开始清理对象...

gc1开始清理对象...

gc4开始清理对象...


*/




你可能感兴趣的:(finalize()方法,System.gc()方法)