04/04/03 04:34
>>677
ネットでいろいろ調べてみたけど,やはりよく分からないなー。
C言語では,間接参照とか直接参照という言葉が出てくるみたいですね。
b[0] = a;
では,aの参照の値のコピーがb[0]に格納されると思ってましたが,677の
解説によるとそれは間違いなのですね。(メソッドの引数には参照のコピー
が渡される,とどこかの記事で読みましたが)
ただ間接にしてもやはり,b[0]は"ABC"を参照している訳だから
a = null;
としても,"ABC"はまだガベージコレクタの対象になれないと考えるのが妥当
ではないか,と思うのですが。
もし,即座にガベージコレクタが実行されるとすれば,
a = null;
System.out.println(b[0]);
で出力されるのは,「null」ということになるんですかね~?
そうなると今まで勉強してきたことが覆される気持ちになります。
もう眠い(´д⊂)。詳しい方,是非解説をお願いします。