2009年2月12日 星期四

第99題

Given:
3. interface Animal{void makeNoise();}
4. class Horse implements Animal{
5. Long weight = 1200L;
6. public void makeNoise(){System.out.println("whinny");}
7. }
8. public class lcelandic extends Horse{
9. public void makeNoise(){System.out.println("vinny");}
10. public static void main(String[] args) {
11. Icelandic i1 = new lcelandic();
12. Icelandic i2 = new lcelandic();
13. Icelandic i3 = new lcelandic();
14. i3 = i1; i1 = i2; i2 = null; i3 = i1;
15. }
16. }
When line 14 is reached, how many objects are eligible for the garbage collector?
A. 0
B. 1
C. 2
D. 3
E. 4
F. 6
答案:C
參考:8-7 資源回收機制

------------------------------------

i1, i2, i3 分別為三個實體.
i3 = i1; // i3 參照11行 i1的實體, i3 原本參照的變為資源回收的對象
i1 = i2; // i1 參照12行 i2的實體, 此時i1 原本的實體還是有i3參照
i2 = null; //i2 不在參照任何實體, 但i1仍然參照i2的實體
i3 = i1; //i3 再次參找目前i1的實體, 就是12行原本i2的實體.
//結果 i1 和 i3 參照12行i2 的實體, 11和13行的就沒有參照,變回資源回收的對象.

沒有留言:

張貼留言