【转】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开始清理对象...


*/




转载于:https://my.oschina.net/airship/blog/297647

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值