1.方法区
方法区存放了类的信息、静态变量、构造函数、类方法等信息,方法区是全局共享的。
2.堆
存放对象实例及数组,线程共享
3.虚拟机栈
虚拟机栈存放栈帧,当调用java方法时,会产生一个栈帧并入栈,当方法调用完成时,栈帧出栈。栈帧中存放着局部变量表、动态链接、操作数和方法出口等信息。线程私有
4.本地方法栈
跟虚拟机栈一样,本地方法栈是native方法,而虚拟机栈是java方法
5.程序计数器
线程私有,JVM在解释字节码文件时,存储当前线程的字节码行号。原理是通过改变程序计数器的值来获取下一条指令