logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Garbage Collections Comments

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

  • Correct Answer
  • just after line 7 

    Explanation
    Option A is wrong. This simply copies the object reference into the array.

    Option B is wrong. The reference o is set to null, but, oa[0] still maintains the reference to the Float object.

    Option C is correct. The thread of execution will then not have access to the object.


  • Garbage Collections problems


    Search Results


    • 1. 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
    • 2. 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
    • 3. 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
    • 4. 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
    • 5. 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
    • 6. 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
    • 7. 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
    • 8. 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
    • 9. Which of the following code fragments inserted, will allow to compile?
      public class Outer 
      { 
          public void someOuterMethod() 
          {
              //Line 5 
          } 
          public class Inner { } 
          
          public static void main(String[] argv) 
          {
              Outer ot = new Outer(); 
              //Line 10
          } 
      } 
      

    • Options
    • A. new Inner(); //At line 5
    • B. new Inner(); //At line 10
    • C. new ot.Inner(); //At line 10
    • D. new Outer.Inner(); //At line 10
    • Discuss
    • 10. Which is valid in a class that extends class A?
      class A 
      {  
          protected int method1(int a, int b) 
          {
              return 0; 
          } 
      }
      

    • Options
    • A. public int method1(int a, int b) {return 0; }
    • B. private int method1(int a, int b) { return 0; }
    • C. public short method1(int a, int b) { return 0; }
    • D. static protected int method1(int a, int b) { return 0; }
    • Discuss


    Comments

    There are no comments.

Enter a new Comment