首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

請問一下程序中的System.gc()代錶什么?该如何解决

2011-12-30 
請問一下程序中的System.gc()代錶什么?????classMyObject{Testmain//记录Test对象,在finalize中时用于恢

請問一下程序中的System.gc()代錶什么?????
class   MyObject{
Test   main;   //记录Test对象,在finalize中时用于恢复可达性
public   MyObject(Test   t)
{  
main=t;   //保存Test   对象
}
protected   void   finalize()
{
main.ref=this;//   恢复本对象,让本对象可达
System.out.println( "This   is   finalize ");//用于测试finalize只运行一次
}
}

class   Test   {
MyObject   ref;
public   static   void   main(String[]   args)   {
Test   test=new   Test();
test.ref=new   MyObject(test);
test.ref=null;   //MyObject对象为不可达对象,finalize将被调用
System.gc();   //?????????????????
if   (test.ref!=null)   System.out.println( "My   Object还活着 ");  
}
}
當使用gc()2時,輸齣:
This   is   finalize
My   Object还活着

當不使用gc()時,沒有任何輸齣


[解决办法]
gc=garbge collection
[解决办法]
尽管调用了GC垃圾回收,但是JVM不一定会即使清除.
[解决办法]
回收没有用而占用内存的对象
[解决办法]
申请系统进行垃圾回收,但是未必会做
[解决办法]
恩 劝其回收
可以接帖了

热点排行