在java当中,当一个对象没有别人指向时,会成为一个垃圾对象。会被jvm回收(销毁)堆内存(或对象空间)。
默认情况下一个类的finalize方法都是继承Object类的。对象调用finalize方法后即被回收。程序员可以重写一个类的finalize方法。但是因为jvm的垃圾回收机制可能不会马上回收。我们可以通过System.gc()进行主动触发垃圾回收机制。
public class Finalize_ {
public static void main(String[] args) {
Cat cat = new Cat("tom");
cat =null;
System.gc();
System.out.println("主方法结束");
}
}
class Cat{
public String name;
public Cat(String name) {
this.name = name;
}
@Override
protected void finalize() throws Throwable {
System.out.println("进入方法");
System.out.println("我被回收了");
}
}