即使得到正确答案,我也无法弄清楚 SCJP 问题:
从以下代码(来源:http : //scjptest.com)中,我们需要确定被引用为 myInt 的对象何时有资格进行垃圾回收:
01.public void doStuff() {
02. Integer arr[] = new Integer[5];
03. for (int i = 0; i < arr.length; i++) {
04. Integer myInt = new Integer(i);
05. arr[i] = myInt;
06. }
07. System.out.println("end");
08.}
答案表明它符合第 6 行的 GC 条件。但我认为该对象在第 7 行之后才符合 GC 条件。因为,被引用为 myInt 的对象也被称为 arr[i]。所以,你不觉得,因为在 myInt 超出范围之后, arr[] 直到第 8 行仍然引用它?