finalize 方法
说明:实际开发中很少或者几乎不会重写finalize
方法,更多的是应对面试考点
说明
-
(1)当对象被回收时,系统会自动调用该对象的 finalize
方法。子类可以重写该方法,做一些额外的资源释放操作(必然:释放资源,数据库连接,或者打开文件…)
-
-
(3)对象回收机制的调用,是在系统决定对象已没有引用后自动完成的。通过调用 System.gc()
主动触发垃圾回收机制。
-
finalize
方法重写示例
public class finalize {public static void main(String[] args) {finals finals = new finals(18);finals = null;System.gc();}
}
class finals{int age;public finals(){}public finals(int age) {this.age = age;}@Overrideprotected void finalize() throws Throwable {System.out.println("调用finalize回收对象");}
}
调用finalize回收对象
代码说明
使用alt + insert
重写finalize
方法,使用System.gc()
主动触发垃圾回收机制,进而验证对象没有被引用时,默认调用fianlize
方法实现垃圾回收机制