Home » Java Programming » Garbage Collections

At what point is the Bar object, created on line 6, eligible for garbage collection? class Bar { } class Test { Bar doBar() { Bar b = new Bar(); /* Line 6 */ return b; /* Line 7 */ } public static void main (String args[]) { Test t = new Test(); /* Line 11 */ Bar newBar = t.doBar(); /* Line 12 */ System.out.println("newBar"); newBar = new Bar(); /* Line 14 */ System.out.println("finishing"); /* Line 15 */ } }

Correct Answer: after line 14

Explanation:

Option B is correct. All references to the Bar object created on line 6 are destroyed when a new reference to a new Bar object is assigned to the variable newBar on line 14. Therefore the Bar object, created on line 6, is eligible for garbage collection after line 14.


Option A is wrong. This actually protects the object from garbage collection.


Option C is wrong. Because the reference in the doBar() method is returned on line 7 and is stored in newBar on line 12. This preserver the object created on line 6.


Option D is wrong. Not applicable because the object is eligible for garbage collection after line 14.


Next Question→

More Questions from Garbage Collections

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion