所有线程共享的的数据区
- 方法区(Method Area) 内容:类信息,运行时常量池(Runtime Constant Pool)信息
用于存放类加载子系统的从文件系统或者网络中加载的Class信息。 - 堆内存(Heap) 内容:对象实例
对象实例包括的有类实例和对象数组 - 执行引擎
JVM最核心的组件,用于执行虚拟机的字节码
线程私有的数据区
- 虚拟机栈(VM Stack) 内容:局部变量、方法参数
虚拟机栈内部由栈帧组成,每个栈帧中有局部变量、方法参数,用于java方法调用、返回。 - 本地方法栈(Native Method Stack)
用于本地方法调用。 - 程序计数器(Program Counter Register)
字节码解释器可以通过改变程序计数器依次执行指令,实现代码的流程控制。
多线程中可以使用程序计数器记录执行的位置,保证切换回来时能找到程序的入口。
网友评论