标签:
今天早上看Thinking in java的【第四章 初始化和清除】.【 清除:终结和垃圾回收】的时候, 看到了这个东西。
用于清理滴。。。
当然,这个方法来自java.lang.Object
finalize()方法的重写
权限(Access)需要是protected或者是public ,不能是private
finalize()方法不需要显示地调用, 在垃圾回收(GC)时会被自动先行调用的。
据我测试,需要显示地调用垃圾回收方法(System.gc()),并且需要有new出来的尚未被销毁的匿名对象的存在(调用其它语言暂不作考虑),finalizze()方法才会被调用
Eg:
public class F { public static void main(String args[]) { new F(); //int a[] = new int[3]; //F f= new F(); System.gc(); } public void finalize() throws Throwable{ //super.finalize(); System.out.println("finalize method was called!"); } }
上面的代码中,分别new出了一个匿名对象, 一个整型数组和一个实例对象f,从测试结果看来,只有在创建匿名对象并且显示地调用了 System.gc()方法的时候,finalize方法才被调用了。
标签:
原文地址:http://www.cnblogs.com/zzzzw/p/4878794.html