to  gaojunbo(飞马) :
前两个我不太清楚,但最后那个我认为应该是5个,5次循环产生的5个对象都是可回收的,

解决方案 »

  1.   

    4,4,5
    前面两个Object o的生命期在整断代码内!所以在for 循环内的最后一个
    new Object()对象不会回收!for中的每次循环使上一次循环生成的Object
    对象被垃圾回收!
    Object o = null ; 与Object o;等价 o都为null;最后一个Object o的生命期在for循环体内{},所以每生成一个Object实例后,
    在进入下一次循环前,该实例被垃圾回收!
      

  2.   

    For(int I=0;I<5;I++)
    {
    Object o = new Object();//这一句每次都产生一个新的对象,所以不会有对象可供回收。
    }
    1、We can easily remove an object reference from a variable by setting the variable to null.
    2、We cas also free up an object from a reference variable by setting th variable to point to another object.
      

  3.   

    to : Dickensi(流星·逐日)(★★★★) :谢谢,我也同意你的观点,再我拿到这个问题的同时,我也有答案(4,5,5),
    不过我不明白他的答案,不知道他的答案是不是正确的。
      

  4.   

    to gaojunbo(飞马) :Dickensi(流星·逐日)(★★★★) 也说到了 ,第三种Object o 的生命周期只再
    for内,所以,他生成的5个新对象都是被回收之列的
      

  5.   

    假如是4,5,5的话,除非我这句: Object o = null ; 与Object o;等价 o都为null;错了!这两句的确不等效!
    Object o;这句在程序中很少使用,o的状态未知!
      

  6.   

    假如是4,5,5的话,除非我这句: Object o = null ; 与Object o;等价 o都为null;错了!这两句的确不等效!
    Object o;这句在程序中很少使用,但据sun称o的状态未知!不知什么意思!
    学习!
      

  7.   

    应该是 4,5,5. 
    Object o = null; 和 Object o ;并不相同
      

  8.   

    以前讨论过:http://www.csdn.net/expert/topic/717/717718.xml?temp=.7707788