1)Can we force garbage collector to run by calling system.gc().
Ans:No.It is only request to JVM.
An object becomes eligible for garbage collection when there are no more
reachable references to it.
In the following ways you can make an object eligible for garbage collection
a)Nulling a reference:
------------------------------
1)StringBuffer sb = new StringBuffer("Anil");
2)sb = null;
If you set sb = null;
The only reference sb to the StringBuffer object Anil is set to null.
So after line 2... sb is ready for garbage collection.
2)Reassigning a reference variable
---------------------------------------------
1)StringBuffer s1 = new StringBuffer("Anil");
2)StringBuffer s2 = new StringBuffer("kumar");
3)s1=s2;
Anil object is being referenced by s1 in step one.
At step 2 s1 is being pointed to s2("kumar").
So after step2 there is no reference pointing to "Anil",
so StringBuffer("Anil") is ready for garbage collection.
When you say system.gc(), we are requesting JVM to run the garbage collector.It may or may not run immediately.
No comments:
Post a Comment