提升:这个方法的实际开发中用的并不多,更多的只是为了应付面试
finalize方法介绍
当一些对象被回收的时候,系统会自动调用finalize方法,用于释放资源
运行测试
因为系统会自动调用finalize
我们通过重写这个方法可以看到他的具体的运行逻辑
package com.humouren.finalize_;
public class finalize_ {
public static void main(String[] args) {
Car byd = new Car("BYD");
byd =null;
}
}
class Car{
String name;
public Car(String name) {
this.name = name;
}
@SuppressWarnings("removal")
@Override
public void finalize() throws Throwable {
super.finalize();
System.out.println("finalize方法开始运行了");
}
}
但是实际运行起来却没有任何输出,为什么会这样呢
因为java里面有一套自己的垃圾回收机制,会在合适的时候自己回收资源,而现在却没有达到要求
当然,我们可以在主函数的后面加上这样一段代码就可以主动调出这个方法
System.gc();
这样,你就能看到程序的运行结果不再是光秃秃的,多了这个
finalize方法开始运行了