Wednesday, February 13, 2013

SCJP Question with Garbage collection

Q. 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 Icelandic extends Horse {
9. public void makeNoise() { System.out.println(“vinny”); }
10. public static void main(String[] args) {
11. Icelandic i1 = new Icelandic();
12. Icelandic i2 = new Icelandic();
13. Icelandic i3 = new Icelandic();
14. i3 = i1; i1 = i2; i2 = null; i3 = i1;
15. }
16. }


When line 15 is reached, how many objects are eligible for the garbage collector?

A. 0
B. 1
C. 2
D. 3
E. 4
F. 6



Answer: E

Explanation:
The object created by i1 and i3 are not referenced anymore, so they can be garbage collected.
When we declare a string like “winny” and "vinny" they are also eligible for garbage collection, because there is no reference to it, so, these 2 strings are also garbage collected.

1 comment:

  1. None of above answers are correct :). I am sure

    ReplyDelete