メソッドに参照変数を渡してオブジェクトの状態を変更すると、変更は永続的になります (間違っている場合は修正してください)。次のコードを検討してください。
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であるとされていますが、理解に問題があります。)