Object类的finalize方法

finalize方法
1.源码

protect void finalize()  throws Throwable {  }
/*
1.finalize()方法只有一个方法体,里面没有代码,而且这个方法是
protected修饰的

2.这个方法不需要程序员手动调用,jvm的垃圾回收器负责调用此方法

3.执行时机:当一个java对象即将被垃圾回收器回收的时候,垃圾回收器负责调用
finalize方法

4.finalize方法实际上是sun公司为程序员准备的一个时机,垃圾销毁时机
如果希望在对象销毁时机执行一段代码的话,这个代码要写到finalize方法当中

5.静态代码快的作用:
静态代码快在类加载时刻执行,并且只能执行一次
finalize是一个垃圾回收时机,不需要程序员来调用

6.java中的垃圾回收器不是轻易启动的,垃圾太少,或者时间没到,种种条件下有可能启动,
也有可能不启动。
 */
public class TestFinalize {
    public static void main(String[] args) {
        //Person person = new Person();
        //person=null;//将对象值设置为null,则该对象变成垃圾
        /*
        多造点垃圾,创建一百万个对象
        for(int i = 0;i<1000000;i++){
            Person p = new Person();
            p=null;
            }

         */
        //有一段代码可以建议垃圾回收器启动
        Person person = new Person();
        person=null;
        System.gc();//建议垃圾回收器启动,但不一定启动。
    }
}
class Person{
    @Override
    protected void finalize() throws Throwable {
        super.finalize();
        System.out.println("即将被销毁");
    }
}

你可能感兴趣的:(Object类的finalize方法)