| Author |
Garbage Collector and System.gc()
|
Renjith Mohan
Ranch Hand
Joined: Nov 28, 2008
Posts: 65
|
|
It is said Java garbage collector can not be forced and there is no guarantee even if we use System.gc()
My question is if there is no guarantee, then why do we need such a method?
I'd like to know what exactly happens once System.gc() is called?
Thanks in advance,
Renjith
|
 |
tushar bhasme
Ranch Hand
Joined: Feb 11, 2008
Posts: 50
|
|
|
well, technically speaking, System.gc() would call the Runtime().gc() which would pass on the implementation as native to the JVM. So, in short, its all upto the JVM vendor and his choice of implementation how the garbage collection would work...
|
 |
Seetharaman Venkatasamy
Ranch Hand
Joined: Jan 28, 2008
Posts: 5575
|
|
tushar bhasme wrote:well, technically speaking, System.gc() would call the Runtime().gc()
not Runtime().gc(), it is Runtime.getRuntime().gc();
|
 |
satish varma
Greenhorn
Joined: Feb 11, 2010
Posts: 27
|
|
The main objective of Garbage Collector is to destruct the useless objects. Garbage Collector is a DeamonThread and it always running in the background with low thread priority. If an object doesnt have any reference variable then it always eligible for GC( some times even though object having reference also it is eligible for GC)
If an Object eligible for Gc and when ever JVM runs garbage collector then only that objects will destroyed.
we can also request to JVM to run GC in the followin ways
1.System.gc();
2.Runtime.getRuntime().gc();
the behaviour of garbage collector vendor dependent hence we cant expect exactly when JVM executes GC, in wich order GC destroys the objects, is Gc destroy all eligible objects... etc
there are so many things remaining about garbage collection, digg the things..
|
 |
 |
|
|
subject: Garbage Collector and System.gc()
|
|
|