Discussion :: Garbage Collections - General Questions (Q.No.7)
|Ramu said: (Dec 9, 2010)|
|i cant understand|
|Vik said: (Sep 9, 2014)|
|Every time, when we create new X() we make not 1, but 2 objects (because one more object create in line 3 ).
That's why after line 11, we are eligible for garbage collection 2 object.
Sorry for my English :)
|Gayachand said: (Sep 16, 2014)|
|Ans: 2 Object are garbage collected. Because,
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 */
Here the statement (x2.x = x3;) will hold new X2() object. And when x variable of type X hold another object called x2 at that moment one object garbage collected. G: x3 because one variable will hold one address. Not more than one variable.
And another object got garbage collected at the moment when we call x2 = new X2() ;
So total 2 object got garbage collected.
|Bilal said: (Jul 9, 2018)|
|The correct answer is C.
We assign the class X2's reference-id to x2(X2 x2=new X2()).
After it, we again assigning the reference-id of 2 to x3(X2 x3=new X2()).
So,x2 become eligible for GC.
Just before line 11 again reference-id of class X2 is going to x2 (x2=new X2).
therefor now x3 become eligible for GC.
That's why the answer is C.
Post your comments here:
Email : (optional)
» Your comments will be displayed only after manual approval.