1.当对象被回收时,系统自动调用该对象的finalize方法,子类可以重写该方法,做一些释放资源的操作
2.什么时候被回收:当某个对象没有任何引用时,则jvm就认为这个对象是一个垃圾对象,就会用垃圾回收机制来销毁该对象,会先调用finalize方法
3.垃圾回收机制的调用,是由系统来决定的,也可以通过System.gc()主动触发垃圾回收机制,测试Car
package com.java.Object_;
public class Finalize {
public static void main(String[] args) {
Car BMW = new Car("宝马");
BMW = null;//这时car对象就是一个垃圾,垃圾回收器就会回收,销毁对象前,会调用finalize方法
//程序员就可以在finalize中写自己的业务逻辑代码 比如释放资源,数据库链接
//如果程序员不在该对象不在finalize,那么就会调用object类finalize,即默认处理
System.gc();//主动调用垃圾回收器
System.out.println("退出来");
}
}
class Car{
private String name;
public Car(String name) {
this.name = name;
}
@Override
protected void finalize() throws Throwable {
System.out.println("销毁");
super.finalize();
}
}