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

有关java内存的有关问题

2012-01-24 
有关java内存的问题有如下代码:publicvoidfoo(){ListlistnewArrayList()Objo1newObj()Objo2newObj()

有关java内存的问题
有如下代码:

public   void   foo()   {
List   list   =   new   ArrayList();
Obj   o1   =   new   Obj();
Obj   o2   =   new   Obj();

list.add(o1);
list.add(o2);

o1   =   null;
o2   =   null;

Obj   o3   =   list.get(0);
list   =   null;
}

请问该段代码中的o2最终会被垃圾回收器回收吗?

[解决办法]
会,应该在该对象的生命结束的时候
[解决办法]
答案是肯定.

当执行o2 = null;时,o2就没有任何对象跟它关联了,此时,o2也就是垃圾回收器的回收对象,但此时不一定别回收,因为不确定GC是否在工作,假如正在工作,马上会被回收掉;假如GC还没有运行,o2就会一直存在,直到GC运行.
[解决办法]
ls正解,GC的优先级是比较低的
[解决办法]
回复人:ieo2004(ieo) ( 一级(初级)) 信誉:97 2007-3-22 11:16:24 得分:0
?

java里面有什么方法可以在foo方法结束前手动释放掉o3所引用对象占用的内存?
Top

--------------------------

无能为力,不敢保证。

热点排行