SCJP第3章に質問があります。
次のコードを参照してください。
public class Sample_1 {
Short story = 200;
Sample_1 go(Sample_1 sample){
sample = null;
return sample;
}
public static void main(String a[]){
Sample_1 sample1 =new Sample_1();
Sample_1 sample2 =new Sample_1();
Sample_1 sample3 = sample1.go(sample2);
sample1 = null;
//DO STUFF
}
}
質問: GC @ line に適格なオブジェクトはいくつあります//DO STUFF
か?
オプション:
0
1
2
コンパイルが失敗
する 知ることはできません
実行時に例外がスローされます
Book によると: 正しい ansert は 2 です。「Sample_1 オブジェクト (sample1) の 1 つだけが GC の対象となりますが、Short 値が関連付けられているため、GC の対象となるオブジェクトが 2 つあります」と書かれています。
この答えはまだ理解できません。すでに sample1 オブジェクトを null にしています。私の見解では、GC のオブジェクトはありません。
何か案が?