logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Garbage Collections Comments

  • Question
  • 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.

  • Correct Answer
  • There is no way to be absolutely certain. 


  • Garbage Collections problems


    Search Results


    • 1. 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
    • 2. Which statement is true about a static nested class?

    • Options
    • A. You must have a reference to an instance of the enclosing class in order to instantiate it.
    • B. It does not have access to nonstatic members of the enclosing class.
    • C. It's variables and methods must be static.
    • D. It must extend the enclosing class.
    • Discuss
    • 3. Which statement, if placed in a class other than MyOuter or MyInner, instantiates an instance of the nested class?
      public class MyOuter 
      {
          public static class MyInner 
          {
              public static void foo() { }
          }
      }
      

    • Options
    • A. MyOuter.MyInner m = new MyOuter.MyInner();
    • B. MyOuter.MyInner mi = new MyInner();
    • C. MyOuter m = new MyOuter();

      MyOuter.MyInner mi = m.new MyOuter.MyInner();

    • D. MyInner mi = new MyOuter.MyInner();
    • Discuss
    • 4. Which is true about a method-local inner class?

    • Options
    • A. It must be marked final.
    • B. It can be marked abstract.
    • C. It can be marked public.
    • D. It can be marked static.
    • Discuss
    • 5. Which is true about an anonymous inner class?

    • Options
    • A. It can extend exactly one class and implement exactly one interface.
    • B. It can extend exactly one class and can implement multiple interfaces.
    • C. It can extend exactly one class or implement exactly one interface.
    • D. It can implement multiple interfaces regardless of whether it also extends a class.
    • Discuss
    • 6. 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
    • 7. 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
    • 8. 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
    • 9. 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
    • Discuss
    • 10. 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


    Comments

    There are no comments.

Enter a new Comment