finalize() 方法——Java中垃圾回收提醒方法
finalize()
Java 允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做 finalize( ),它用来清除回收对象。
例如,你可以使用 finalize() 来确保一个对象打开的文件被关闭了。
在 finalize() 方法里,你必须指定在对象销毁时候要执行的操作。
这是Java手册上的解释,说白了,建立一个这方法,可以在你一个变量或其他对象销毁时,也就是扔进垃圾箱时可以提前给你个报告。
比如我原来 demo a=new demo();
现在我再写a=null;
这就叫丢了一个对象。如果在原类中建立了finalize() 方法,就会执行这个方法。这个方法的作用可以让你确保,这个对象的确是GG了。(不过不是即时触发,而是相当于留了个凭证,用System.gc();就能调出这个凭证)
具体是写个这个方法就行了,里面填的就是操作代码。
如以下案例
public class demo {
public static void main(String args[])
{
Cake c1=new Cake(1);
Cake c2=new Cake(2);
c2=null;
System.gc();//必须调这个函数,这样才执行
}
}
class Cake extends Object
{
private int id;
public Cake(int id)
{
this.id=id;
System.out.println("cake is"+id+"is creat!");
}
protected void finalize() throws java.lang.Throwable //这就是这个类,在第6行C2销毁时,就会执行这里面的东西
{
System.out.println("Cake Object"+id+"is disposed");
}
}
效果如下

本文来自博客园,作者:独元殇,转载请注明原文链接:https://www.cnblogs.com/duyuanshang/p/12398765.html

浙公网安备 33010602011771号