Return to site

JAVA CERTIFICATION QUESTION: Determining eligibility for garbage collection in Java

· java

Given:

abstract class Test {
  JavaClass classToTest;
  abstract public void doTest(JavaClass classToTest);
}
class UnitTest extends Test {
  JavaClass classToUnitTest;
  public UnitTest(JavaClass classToTest) {
     this.classToTest = classToTest;
   }
  @Override
  public void doTest(JavaClass classToTest) {
     classToUnitTest = classToTest;
  }
}
class JavaClass {}

and a fragment of a test case scenario:

JavaClass c1 = new JavaClass(); // line A
Test t1 = new UnitTest(c1);
t1.doTest(c1);
JavaClass c2 = c1;   // line 1
c1 = new JavaClass(); // line 2
c2 = null;       // line 3
t1.doTest(null);    // line 4
System.gc();      // line 5
t1 = new UnitTest(c1); // line 6

After which line’s execution will the object created at line A become eligible for garbage collection? Choose one.

A. Line 1

B. Line 2

C. Line 3

D. Line 4

E. Line 5

F. Line 6

G. Not possible to predict, because it depends on the garbage collector (GC) implementation

 

 

 

·pǝʇǝๅdɯoɔ uǝǝq sɐɥ 9 ǝuᴉๅ ɹǝʇɟɐ uoᴉʇɔǝๅๅoɔ ǝɓɐqɹɐɓ ɹoɟ ǝๅqᴉɓᴉๅǝ ǝq ๅๅᴉʍ Ɐ ǝuᴉๅ ʇɐ pǝʇɐǝɹɔ ǝɔuɐʇsuᴉ ssɐๅꓛɐʌɐſ ǝɥʇ ǝsnɐɔǝq ʻꓞ sᴉ uoᴉʇdo ʇɔǝɹɹoɔ ǝɥꓕ