logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Garbage Collections Comments

  • Question
  • After line 11 runs, how many objects are eligible for garbage collection?
    class X2 
    {
        public X2 x;
        public static void main(String [] args) 
        {
            X2 x2 = new X2();  /* Line 6 */
            X2 x3 = new X2();  /* Line 7 */
            x2.x = x3;
            x3.x = x2;
            x2 = new X2();
            x3 = x2; /* Line 11 */
            doComplexStuff();
        }
    }
    


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

  • Correct Answer


  • Explanation
    This is an example of the islands of isolated objects. By the time line 11 has run, the objects instantiated in lines 6 and 7 are referring to each other, but no live thread can reach either of them.

  • Garbage Collections problems


    Search Results


    • 1. After line 8 runs. how many objects are eligible for garbage collection?
      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;
          }
      }
      

    • Options
    • A. 0  
    • B. 1
    • C. 2
    • D. 3
    • Discuss
    • 2. When is the Demo object eligible for garbage collection?
      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(); 
          } 
      }
      

    • Options
    • 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.
    • Discuss
    • 3. What allows the programmer to destroy an object x?

    • Options
    • A. x.delete()
    • B. x.finalize()
    • C. Runtime.getRuntime().gc()
    • D. Only the garbage collection system can destroy an object.
    • Discuss
    • 4. When is the B object, created in line 3, eligible for garbage collection?
      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 */
      } 
      

    • Options
    • A. after line 5
    • B. after line 6
    • C. after line 7
    • D. There is no way to be absolutely certain.
    • Discuss
    • 5. 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 */
          } 
      }
      

    • Options
    • A. after line 12
    • B. after line 14
    • C. after line 7, when doBar() completes
    • D. after line 15, when main() completes
    • Discuss
    • 6. Where will be the most chance of the garbage collector being invoked?
      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]; 
          } 
      }
      

    • Options
    • A. After line 9
    • B. After line 10
    • C. After line 11
    • D. Garbage collector never invoked in methodA()
    • Discuss
    • 7. When is the Float object, created in line 3, eligible for garbage collection?
      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 */
      }
      

    • Options
    • A. just after line 5
    • B. just after line 6
    • C. just after line 7
    • D. just after line 8
    • Discuss
    • 8. Which of the following class level (nonlocal) variable declarations will not compile?

    • Options
    • A. protected int a;
    • B. transient int b = 3;
    • C. private synchronized int e;
    • D. volatile int d;
    • Discuss
    • 9. Given a method in a protected class, what access modifier do you use to restrict access to that method to only the other members of the same class?

    • Options
    • A. final
    • B. static
    • C. private
    • D. protected
    • E. volatile
    • Discuss
    • 10. Which is a valid declaration within an interface?

    • Options
    • A. public static short stop = 23;
    • B. protected short stop = 23;
    • C. transient short stop = 23;
    • D. final void madness(short stop);
    • Discuss


    Comments

    There are no comments.

Enter a new Comment