Java GC


Java GC

Java GC Tutorials, Detailed discussion of Young and Old Generation GC

Java GC Tutorials, Detailed discussion of Young and Old Generation GC

Major/Minor GC in Java

In this Section you will learn the type of GC or garbage collection in Java.

In java, objects are dynamically allocated using new() keyword. But the key question is what happened to these objects when they have no use. How these objects are destroyed for later reallocation of their memory. In java this is done automatically through garbage collection. In other words it deallocate memory automatically which have no longer use. This technique is known as Garbage Collection.

In this way, java ensures that sufficient memory will available to your program. It (Garbage Collection) is controlled by the configuration parameters of the heap.

Note: Heap resides in the physical memory which is incorporated by the Java Virtual Machine(JVM) for the creation of  objects. The configuration parameter of the heap are Xms & Xmx. You can use these configuration parameter as :

java ?Xms:256m Xmx:1g

It points that the Xms(minimum heap size) is 256Mb & Xmx(Maximum heap size) is !024Mb.

Types of Garbage Collection(GC)

The garbage collection is of two types :

  • Major
  • Minor

Before understanding Major/Minor GC, first you need to understand young generation.

Young Generation :

The temporary objects which are ,initially, not fully garbage collected. When these young generation become old, they become part of the old generation. Old generation is known as Minor GC. When Minor GC become fully garbage collected, it is known as Major GC.

How To Check Major/Minor GC

You can check the Major/Minor GC as follows :

To check the Major/Minor GC , you need to start your application as follows :

java ?verbose:gc HelloWorld

The Output of the above should be like this :

GC 325407K->83000K(776768K), 0.2300771 secs

  • GC : This tells us that it is a minor collection. If it is Full GC  then it tells us that it is a major collection.
  • 325407K ? The combined size of live objects before garbage collection.
  • 83000K ? The combined size of live objects after garbage collection. 
  • (776768K) ? the total available space, not counting the space in the permanent generation, which is the total heap minus one of the survivor spaces. 
  • 0.2300771 secs ? time it took for garbage collection to occur.