1.在object类中源代码如下: protected void finalize() throws Throwable{}
2.可以看到finalize()方法只有一个方法体,里面没有代码,而且这个方法体是被protected修饰的。
3.这个方法不需要程序员手动调用,JVM的垃圾回收器负责调用这个方法。
4.finalize的执行时机:当一个java对象即将被垃圾回收器回收时,垃圾回收期负责调用finalize方法。
5.finalize()方法实际上是为程序员准备的一个时机。垃圾回收销毁时机,如果你希望对象在销毁时机执行一段代码的话,就写在finalize()方法中。
6.java中的垃圾回收器不会轻易启动,垃圾太少或时间没到,种种条件下,有可能启动,也有可能不启动。
public class Test003 {
public static void main(String[] args) {
//垃圾太少不用轻易启动,使用循环多造点垃圾
for(int i=0;i<1000000000;++i){
Person p=new Person();
p=null;//表示将Person对象p当作垃圾回收
}
}
}
class Person{
protected void finalize() throws Throwable{
System.out.println("即将被销毁!");
}
}



