JVM Internal Structure


Overall Structure of JVM


  1. First time when a Class is referenced by a Java Application, the Class Loader loads the Class in the Method Area.
  2. Every Java Thread runs on a separate Java Stack provided by the JVM.
  3. Every Java Thread has a separate Program Counter (PC) which stores a native pointer and a return address. PC holds the address of the current Instruction being executed by the Thread.
  4. Stack Frames are PUSH and POP out of the Java Stack during call to a Method and return from a Method.
  5. The Java Heap is divided into:
    • Young Generation – This is where all new objects are allocated and aged. 
    • Old Generation – This is used to store long surviving objects.
    • Permanent Generation – This contains META data required by JVM (holds the Method Area and String Pool)

Mapping of JVM over Linux Process

Most of JVM functions over the native Process Heap. JVM internally uses the native Process stack as well as Native Stack used by native code is mapped over native Process stack.



No comments:

Post a Comment