1>程序计数器
JVM中,多线程切换使用cpu执行时,会使线程进入阻塞状态,此时程序计数器记录了该线程之前的执行位置,可以让线程恢复时找到运行位置
2>虚拟机栈
Java栈中存储的是栈帧,一个栈帧代表一个摇执行的方法;栈帧由以下几部分组成(由线程私有):
①局部变量表
②操作数栈
线程中存储的值出栈运算后压栈入操作数栈
③运行时常量池的引用
④方法返回地址
⑤额外附加信息
3>本地方法栈
与java栈相同,不过处理native方法
4>堆
存储栈中引用指向的具体对象本身,由全部线程共享
5>方法区
存储了类的信息:名称、方法信息、字段信息,静态变量、常量以及编译器编译后的代码,运行时常量池