3

メソッドに参照変数を渡してオブジェクトの状態を変更すると、変更は永続的になります (間違っている場合は修正してください)。次のコードを検討してください。

 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であるとされていますが、理解に問題があります。)

4

2 に答える 2