Java (JVM) Memory Types

Java Virtual Machine is a program/software which takes Java bytecode (.class files)

and converts the byte code (line by line) into machine understandable code.

JVM contains a module known as a class loader. A class loader in JVM loads, links and, initializes a program. It−

  • Loads the class into the memory. 
  • Verifies the byte code instructions.
  • Allocates memory for the program.

The memory in the JVM is divided into five different parts namely− Method area The method area stores the class code − code of the variables and methods. 

Heap − The Java objects are created in this area. 

Java Stack− While running methods the results are stored in the stack memory. PC registers− These contain the address of the instructions of the methods. 

Native method stacks− Similar to Java stack, native methods are executed on the Native method stacks.