Java类的finalize()方法

Java的Object类提供了一个finalize()方法,签名如下:

protected void finalize() throws Throwable { }

该方法在JVM进行垃圾回收时之行,所以任何类都可以Override该方法,来让自己的类的实例在被回收之前,执行一系列动作。

可以通过如下两种方式来让主动让JVM进行垃圾回收:

System.gc();


Runtime.getRuntime().gc();

但是JVM不保证立即执行gc操作。

finalize()方法使用示例如下:

public class test {
    public static void main(String[] args) {
        //finalize的用法
        A aa = new A();
        try {
            aa.finalize();
        } catch (Throwable e) {
            e.printStackTrace();
        }
        aa = null;
        System.gc();
    }
}
class A{
    @Override
    protected void finalize() throws Throwable
    {
        System.out.println("finalize!!!!");
    }
}
//output:
//    finalize!!!!
//    finalize!!!!
原文地址:https://www.cnblogs.com/YLsY/p/5779251.html