Java Finalize和System.gc方法

Java的finalize方法和gc方法,調用實例。

public class FinalizeTest{
	private static FinalizeTest ft = null;
	public void info()
	{
		System.out.println("測試系統finalize方法");
	}
	public static void main(String args[]){
		new FinalizeTest();
		System.gc();	//1
		//Runtime.getRuntime().runFinalization();	//2
		//System.runFinalization();	//3
		ft.info();
	}
	public void finalize(){
		//讓ft引用到試圖回收的可恢復對象,即可恢復對象重新變爲可達到
		ft = this;
	}
}
/**如果直接調用runFinalization的兩個方法,finalize不一定會運行,this就
拿不到了。這時再info()不會輸出,反而會有空指針異常。
註釋掉1、保留2或3,一種輸出;
註釋掉2或3,保留1,另一種輸出。
*/

空指針異常是:

Exception in thread "main" java.lang.NullPointerException
        at FinalizeTest.main(FinalizeTest.java:12)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章