jvm虚拟机中运行时数据区域介绍
jvm虚拟机中,运行时数据区域包括七大部分 i. 程序计算器 i. 定义 1) 极小的内存空间; 2) 行号指示器,程序的分支、循环、跳转、异常处理、线程恢复等基本功能都需要依赖程序计算器; 3) 线程私有的。 ii. 由来 因为java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在一个确定的时刻,一个cpu只执行一条线程中的指令;为了线程切换后能 恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各线程之间计数器互不影响,独立存储,此内存为线程私有。 iii. 不同的使用场景 1) 线程执行的是java方法,计数器记录的是正在执行的虚拟机字节码指令的地址; 2) Native方法,计数器值为空; iv. 注意 在java虚拟机规范中唯一没有规定任何OutOfMemoryError情况的区域 ii. java虚拟机栈 i. 定义 1) 线程私有的,生命周期与线程相同; 2) 虚拟机栈描述的是java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息; 3) 方法的调用直至执行完成的过程,对应着...