In the following code, how many objects will be eligible for garbage collection on the line with the comment //here
public class BettyAck { public static void main(String argv[]){ BettyAck b =new BettyAck(); } public BettyAck() { Integer x = new Integer(10); findOut(x); Integer y = new Integer(99); Integer z = y; z = null; findOut(y); //here } public void findOut(Integer y){ y = null;
} }
i'm jus not able to get it,can n e plzzz explain it to me
Layne Lund
Ranch Hand
Joined: Dec 06, 2001
Posts: 3061
posted
0
There are only three object created in this program. One is created in main() from the BettyAck class. The other two are created in the constructor for BettyAck from the Integer class. None of them will be avaiable for garbage collection since there are still references to all the objects. As soon as execution returns from the constructor back to main(), the two Integer objects will be available for garbage collection since all of the references to these two objects are local to the constructor. If this doesn't make sense, I suggest that you add System.out.println() calls to see what the values are of each variable at different parts in the code.