Given:class CardBoard{
  Short story = 200;
  CardBoard go(CardBoard cb){
    cb = null;
    return cb;
  }
  public static void main(String []args){
    CardBoard c1 = new CardBoard();
    CardBoard c2 = new CardBoard();
    CardBoard c3 = c1.go(c2);
    c1 = null;
    //do Stuff
  }
}When // do Stuff is reached, how many objects are eligible for GC?
A.0
B.1
C.2
D.Compilation fails
E.It is not possible to know
F.An exception is thrown at runtime想问下到底有几个CardBoard引用是null啊 还有这一题的详细解释

解决方案 »

  1.   

    选择C。
    这里边一共就制造了两个对象c1和c2。当执行到"CardBoard c3 = c1.go(c2);"后,那么 c1和c2都变成了可以回收的对象,c3仅仅是一个被赋了null的引用,并没有生成任何对象。
      

  2.   

    Short story = 200;注意到这个你就不会错了
      

  3.   

    1楼答案是正确的,但是解释错了....囧(这就叫误打误撞吧)
    注意:
    CardBoard c1 = new CardBoard();//创建新对象给引用c1
    CardBoard c2 = new CardBoard();//创建新对象给引用c2
    CardBoard c3 = c1.go(c2);//此时c1依然引用原来的,c2=null,c3=null;
    全程中只有一个c2引用的对象丢失了所以垃圾回收是c2引用的CardBoard()对象和这个对象里面所引用的Short对象
      

  4.   

    LS 你注意到
    c1 = null;
    这句话了吗囧
      

  5.   

    干。。原来是运行错误  public class CardBoard....
      

  6.   

    你类上没public,运行肯定出异常啊