JVM (Java Virtual Machine) Architecture

Profile picture for user arilio666

Java virtual machine is a specification that provides an environment for runtime in java bytecode which can be executed. JVM is platform-dependent.

In this article, we will understand the internal architecture of a java virtual machine.


  • It is a subsystem that loads class files.
  • Whenever the java program is run, class files are loaded first by the classloader.

 Bootstrap Classloader: This is the first classloader superclass of the extension class loader.
 Extension ClassLoader: We can call this the child classloader and parent of the system class loader. it loads jar files inside $JAVA_HOME/jre/lib/ext.
 App ClassLoader: We can call this child of extension classloader.Loads class files from classpath.

Class Area:

Class Area stores runtime constant pool structure and field, method data, and code for methods.


Responsible for runtime data area in which objects are allocated.


Responsible for method invocation and return and holds local variable and partial results.

Program Counter Register:

Contains the address of JVM instructions currently executed.

Native Method Stack:

Contains all native methods in the app.

Execution Engine:

It contains Virtualprocessor, interpreter, and JIT compiler(Just In Time), which is used to improve performance.


JNI or java native interface is a framework that provides an interface for communication with apps written in different languages.