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");
	}
	
	
}

  效果如下

 

posted @ 2020-03-02 23:01  独元殇  阅读(721)  评论(0编辑  收藏  举报