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啊 还有这一题的详细解释
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啊 还有这一题的详细解释
这里边一共就制造了两个对象c1和c2。当执行到"CardBoard c3 = c1.go(c2);"后,那么 c1和c2都变成了可以回收的对象,c3仅仅是一个被赋了null的引用,并没有生成任何对象。
注意:
CardBoard c1 = new CardBoard();//创建新对象给引用c1
CardBoard c2 = new CardBoard();//创建新对象给引用c2
CardBoard c3 = c1.go(c2);//此时c1依然引用原来的,c2=null,c3=null;
全程中只有一个c2引用的对象丢失了所以垃圾回收是c2引用的CardBoard()对象和这个对象里面所引用的Short对象
c1 = null;
这句话了吗囧