Home / Java Programming / Garbage Collections :: General Questions

Java Programming :: Garbage Collections

  1. void start() {  
        A a = new A(); 
        B b = new B(); 
        a.s(b);  
        b = null; /* Line 5 */
        a = null;  /* Line 6 */
        System.out.println("start completed"); /* Line 7 */
    } 
    
    When is the B object, created in line 3, eligible for garbage collection?
  2. A.

    after line 5

    B.

    after line 6

    C.

    after line 7

    D.

    There is no way to be absolutely certain.

    View Answer

    Workspace

    Discuss Discuss in Forum


  3. class HappyGarbage01 
    { 
        public static void main(String args[]) 
        {
            HappyGarbage01 h = new HappyGarbage01(); 
            h.methodA(); /* Line 6 */
        } 
        Object methodA() 
        {
            Object obj1 = new Object(); 
            Object [] obj2 = new Object[1]; 
            obj2[0] = obj1; 
            obj1 = null; 
            return obj2[0]; 
        } 
    }
    
    Where will be the most chance of the garbage collector being invoked?
  4. A.

    After line 9

    B.

    After line 10

    C.

    After line 11

    D.

    Garbage collector never invoked in methodA()

    View Answer

    Workspace

    Discuss Discuss in Forum


  5. 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 */
        } 
    }
    
    At what point is the Bar object, created on line 6, eligible for garbage collection?

  6. A.

    after line 12

    B.

    after line 14

    C.

    after line 7, when doBar() completes

    D.

    after line 15, when main() completes

    View Answer

    Workspace

    Discuss Discuss in Forum


  7. 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(); 
        } 
    }
    
  8. 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

    Discuss Discuss in Forum


  9. 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?

  10. A.

    0  

    B.

    1

    C.

    2

    D.

    3

    View Answer

    Workspace

    Discuss Discuss in Forum


  11. public Object m()

    {

      Object o = new Float(3.14F);

      Object [] oa new Object[l];

      oa[0] = o; /* Line 5 */

      o = null; /* Line 6 */

      oa[0] = null; /* Line 7 */

      return o; /* Line 8 */

     }

    When is the Float object, created in line 3, eligible for garbage collection?

  12. A.

    just after line 5

    B.

    just after line 6

    C.

    just after line 7

    D.

    just after line 8

    View Answer

    Workspace

    Discuss Discuss in Forum


  13. What allows the programmer to destroy an object x?

  14. A.
    x.delete()
    B.
    x.finalize()
    C.
    Runtime.getRuntime().gc()
    D.
    Only the garbage collection system can destroy an object.

    View Answer

    Workspace

    Discuss Discuss in Forum