如果我们将引用变量传递给方法并修改对象的状态,则修改是永久性的(如果我错了,请纠正我)。考虑代码:
class CardBoard {
Short story = 200;
CardBoard go(CardBoard cb) { //....(1)
cb = null;
return cb;
}
public static void main(String[] args) {
CardBoard c1 = new CardBoard();
CardBoard c2 = new CardBoard();
CardBoard c3 = c1.go(c2); //pass c2 into a method ....(2)
c1 = null;
// do Stuff
} }
在上面的代码中,我们说 cb=null 并返回 cb,c2(以及 c3)现在不应该有 null 引用吗?(PS:原来的问题是在“//do stuff”之后询问符合gc条件的对象。答案是2,但我理解它有问题。)