Home / Java Programming / Garbage Collections :: Discussion

Discussion :: Garbage Collections

  1. class Test 
    {  
        private Demo d; 
        void start() 
        {  
            d = new Demo(); 
            this.takeDemo(d); /* Line 7 */
        } /* Line 8 */
        void takeDemo(Demo demo) 
        { 
            demo = null;  
            demo = new Demo(); 
        } 
    }
    
  2. A.

    After line 7

    B.

    After line 8

    C.

    After the start() method completes

    D.

    When the instance running this code is made eligible for garbage collection.

    View Answer

    Workspace

    Answer : Option D

    Explanation :

    Option D is correct. By a process of elimination.

    Option A is wrong. The variable d is a member of the Test class and is never directly set to null.

    Option B is wrong. A copy of the variable d is set to null and not the actual variable d.

    Option C is wrong. The variable d exists outside the start() method (it is a class member). So, when the start() method finishes the variable d still holds a reference.

     


Be The First To Comment