java中的垃圾回收机制

java.lang.object  

如果一个类没有从其他类派生那么他总从 object类派生      这个类中有 protected void    finalize()这个函数  这个对象将被回收的时候 会调用这个函数 我们可以在 我们创建的 类中重写这个函数 来实现垃圾回收模拟

 

在jvm虚拟机中垃圾回收是作为第一优先级的线程执行  当内存不够的时候才会执行  所以我们再 我们重载我finalize函数 看不到输出

如果我们想让垃圾回收运行   

system.gc()  显示运行垃圾收集器      System类中的静态函数  执行垃圾回收

 

代码如下 :

public class garbage
{
 int index;
 
 static int count =0;
 garbage()
 {
  System.out.println("object" + count + "construct!");
  count++;
  setIndex(count);
 }
 void  setIndex(int n)
 {
  index=n;
  showIndex();
 }
 void showIndex()
 {
  System.out.println(this.index);
 }
  protected void finalize()
 {
  System.out.println("object"+index+ "is  reclaimed");
 }
 public static void main(String []args)
 {
  new garbage();  //构造类的实例
  new garbage();
  new garbage();
   new garbage();
    System.gc() ;//执行垃圾回收

posted @ 2011-07-21 15:00  programmer小卫  阅读(97)  评论(0编辑  收藏  举报