Java Garbage Collection Interview Questions
Java Garbage Collection Interview Questions
Java Garbage Collection Interview Questions
Or
Or
Or
Or
Garbage collection is one of the most important features of Java. The purpose of garbage
collection is to identify and discard objects that are no longer needed by a program so that their
resources can be reclaimed and reused. A Java object is subject to garbage collection when it
becomes unreachable to the program in which it is used. Garbage collection is also called
automatic memory management as JVM automatically removes the unused variables/objects
(value is null) from the memory. Every class inherits finalize() method from java.lang.Object, the
finalize() method is called by garbage collector when it determines no more references to the
object exists. In Java, it is good idea to explicitly assign null into a variable when no more in use.
In Java on calling System.gc() and Runtime.gc(), JVM tries to recycle the unused objects, but
there is no guarantee when all the objects will garbage collected. Garbage collection is an
automatic process and can't be forced. There is no guarantee that Garbage collection will start
immediately upon request of System.gc().
It is a daemon thread.
An object’s finalize() method cannot be invoked by the garbage collector while the object is still
reachable. However, an object’s finalize() method may be invoked by other objects.
Does garbage collection guarantee that a program will not run out of memory?
Garbage collection does not guarantee that a program will not run out of memory. It is possible
for programs to use up memory resources faster than they are garbage collected. It is also
possible for programs to create objects that are not subject to garbage collection.