本文主要是介绍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(); //3ft.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)
这篇关于Java Finalize和System.gc方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!