Home / Java Programming / Garbage Collections :: Discussion

Discussion :: Garbage Collections

  1. public class X  {     public static void main(String [] args)      {         X x = new X();         X x2 = m1(x); /* Line 6 */         X x4 = new X();         x2 = x4; /* Line 8 */         doComplexStuff();     }     static X m1(X mx)      {         mx = new X();         return mx;     } } 
    After line 8 runs. how many objects are eligible for garbage collection?

  2. A.
    0  
    B.
    1
    C.
    2
    D.
    3

    View Answer

    Workspace

    Answer : Option B

    Explanation :

    By the time line 8 has run, the only object without a reference is the one generated as a result of line 6. Remember that "Java is pass by value," so the reference variable x is not affected by the m1() method.

    Ref: http://www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.html


Be The First To Comment