Object类详解--finalize
介绍:
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
1.当对象被回收时,系统自动调用该对象的finalize方法,子类可以重写该方法,做一些释放资源的操作
2.什么时候被回收:当某个对象没有任何引用时,则jvm就认为这个对象是一个垃圾对象,就会使用垃圾回收机制来销毁该对象,在销毁对象前,会先调用finalize方法
3.垃圾回收机制的调用,是由系统决定的(即有自己的GC算法),也可以通过System.gc() 主动触发垃圾回收机制
package com.objLearn.object_;public class Finalize_ {public static void main(String[] args) {Car BMW = new Car("宝马");BMW = null;//把BMW指向对象的链接设为null,此时先前创建的对象没有被引用,就成为了垃圾对象//垃圾回收器就会回收(销毁)对象,把内存中的空间给释放出来//在销毁(回收)对象前,会调用该对象的finalize方法//程序员就可以在 finalize中,写自己的一些业务逻辑(代码),比如释放资源:数据库连接,或者打开的文件//如果程序员不重写finalize ,那么就会调用Object的finalize,即默认处理//如果程序员重写了finalize,就可以实现自己的逻辑System.gc();//主动调用垃圾回收器System.out.println("程序退出.....");}
}
class Car{private String name;public Car(String name) {this.name = name;}//重写finalize,直接打出finalize即可@Overrideprotected void finalize() throws Throwable {System.out.println("我们销毁汽车" + name);System.out.println("我们释放了某些资源......");}
}