JAVA运行时数据区
线程共享区
1.方法区
存储类信息,常量,静态变量,编译后的代码。
2.堆内存
存放对象实例,堆内存满了则抛出OutOfMemoryError
异常。
线程独占区
1.虚拟机栈
由多个栈帧组成,每个方法对应一个栈帧,栈帧包含:局部变量表,操作数栈,动态链接,方法返回地址等信息。栈内存最大为1M
,超出则抛出StackOverflowError
异常。
2.本地方法栈
存储虚拟机运行时的Native
本地方法,其作用同虚拟机栈。
3.程序计数器
记录当前执行字节码的位置,存储字节码指令地址,如果执行的是本地方法,则计数器值为空。当线程切换时,需通过程序计数器恢复执行顺序。
