日期:2014-05-20  浏览次数:20718 次

我觉得答案应该是B,但答案是C,有点不理解。
class   Bar{}
class   Test{
Bar   doBar(){
Bar   b=new   Bar();
return   b;
}
public   static   void   main(String   arg[]){
Test   t=new   Test();
Bar   newBar=t.doBar();
System.out.println( "new   bar ");
newBar=new   Bar();
System.out.println( "finishing ");
}
}

At   what   poing   is   the   Bar   object,create   on   line   3,eligible   for   garbage   collection?

A.after   line   8;
B.after   line   10;
C.after   line   4,when   doBar()   completes.
C.after   line   11,when   doBar()   completes.

------解决方案--------------------
听高手讲解。。。。。。
------解决方案--------------------
应该是在newBar=new Bar();这句话之后
------解决方案--------------------
line呢?
------解决方案--------------------
在方法内部创建的对象 当方法调用完以后就成为垃圾 个人认为!
------解决方案--------------------
At what poing is the Bar object,create on line 3,eligible for garbage collection?
我还没看懂!要看懂了这句我应该可以解释,我这里没翻译工具!
------解决方案--------------------
:)
------解决方案--------------------
当对象不在被引用时,才会被回收。
Bar doBar(){
Bar b=new Bar();
return b;
}//上面的方法中,创建的对象始终由b引用,这个地方会出现内存泄漏。