读书人

一下程序中的System.gc()代什么

发布时间: 2011-12-30 23:30:45 作者: rapoo

一下程序中的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不一定会即使清除.
[解决办法]
回收没有用而占用内存的对象
[解决办法]
申请系统进行垃圾回收,但是未必会做
[解决办法]
恩 劝其回收
可以接帖了

读书人网 >J2SE开发

热点推荐