如果类声明了一个名为finalize()返回void的方法
GC会在释放这个实例所占据的内存空间之前执行这个方法 被称为终结方法
终结方法的类的例子
class Finale{
protected void finalize(){
System.out.println("A Finale object was finalized");
}
}
一个终结方法是一个普通的java方法
它可以直接被程序所调用
GC最多只会调用一个对象的终结方法一次
在对象变成不再被引用的之后的某个时候
在占据的对象被重用之前
如果终结方法代码执行后 对象重新被引用了 复活了
随后再次变得不被引用 GC不会第二次调用终结方法
垃圾收集器自动调用的finalize()方法抛出的任何异常都将被忽略
GC可以用任意顺序调用finalize()方法 使用任意线程
甚至并行使用多线程