在JAVA中,当一个对象成为垃圾后扔会占有空间,时间一长,就会导致内存空间的不足,针对这种情况,JAVA中引入了垃圾回收机制。有了这种机制,程序员不需要过多的考虑垃圾过多的问题,JAVA虚拟机会自动回收垃圾对象所占有的空间。
一个对象在成为垃圾后暂时保留在内存中,当这样的垃圾堆积到一定程度时,JAVA虚拟机就会启动垃圾回收器将这些垃圾对象从内存中释放,从而使程序获得更多可用的空间。除了等待JAVA虚拟机进行自动垃圾回收外,还可以通过调用System.gc()方法来通知JAVA虚拟机立即进行垃圾回收。当一个对象在内存中释放时,它的finalize()方法会被自动调用,因此可以在类中通过定义这个方法来观察对象何时被释放。
class person{
public void finalize(){
System.out.println(“对象将被作为垃圾回收”);
}
}
public class example{
piblic static void main(String[] args){
person P = new person();
person P2=new person();
P=null;
P2=null;
System.gc();
for(int i=0;i<1000000;i++){
//为了延长程序运行时间
}
}
}
需要注意的是,JAVA虚拟机的垃圾回收操作是在后台完成的,程序结束后,垃圾回收的操作也就终止。因此,程序的最后使用一个for循环,延迟了程序运行的时间,从而能够更好的看到垃圾对象被回收的过程。