Many types:
1) Classloader:Classloader is a subsystem of JVM that is used to
load class files.
2) Class(Method) Area:Class(Method) Area stores per-class
structures such as the runtime constant pool, field and method data, the code
for methods.
3) Heap:It is the runtime data area in which objects are allocated.
4) Stack:Java Stack stores frames.It holds local variables and
partial results, and plays a part in method invocation and return.
Each thread has a private JVM stack, created at the same time as thread.
5) Program Counter Register:PC (program counter) register. It
contains the address of the Java virtual machine instruction currently being
executed.
6) Native Method Stack:It contains all the native methods used in
the application.