System.gc();和System.runFinalization();是什么区别,感谢。

解决方案 »

  1.   

    System.gc();强制垃圾回收器释放无任何引用的对象空间
    System.runFinalization是调用已经失去引用的对象的finalize方法,可以认为与垃圾收集无关。
    http://niuy.com/programme/3930/3930352.htm
      

  2.   

    楼上的说法似乎不对class Test{ public void finalize()
    {
    System.out.println("finalize()");
    }
       public static void main(String []args)
       {
       System.out.println("Test a=new Test();");
       Test a=new Test();
       Test b=new Test();
       Test c=new Test();
       
       System.out.println("a=null;");
       a=null;
       b=null;
       c=null;
       
       System.out.println("System.runFinalization();");
       System.runFinalization();
       System.out.println("Runtime.getRuntime().runFinalization();");
       Runtime.getRuntime().runFinalization();    System.out.println("System.gc();");  
       System.gc();
       
       }
    }只打印出了3次finalize()
    而且都是因为System.gc();而调用的....学习中....等待高人解答.....