做兼职的设计网站有哪些工作内容,心理学网站开发,搭建自己的网站需要什么,wordpress做微信登录页运行时数据区
Java虚拟机在执行Java程序的过程中#xff0c;会把它管理的内存划分成若干个不同的区域#xff0c;这些区域有各自的用途、创建及销毁时间#xff0c;有些区域随着虚拟机的启动一直存在#xff0c;有些区域则随着用户线程的启动和结束而建立和销毁#xff0…运行时数据区
Java虚拟机在执行Java程序的过程中会把它管理的内存划分成若干个不同的区域这些区域有各自的用途、创建及销毁时间有些区域随着虚拟机的启动一直存在有些区域则随着用户线程的启动和结束而建立和销毁这些共同组成了Java虚拟机的运行时数据区域。 如上图运行时数据区由方法区、堆区、Java虚拟机栈、本地方法栈、程序计数器五部分组成其中方法区和堆区是线程共享的区域Java虚拟机栈、本地方法栈和程序计数器是线程私有的区域所以后三种的生命周期随着线程消亡而结束前两种伴随虚拟机的启动一直存在。
程序计数器
程序计数器(也称PC寄存器)是线程私有地一块很小的内存区域几乎忽略不计同时也是运行速度最快的存储区域存储了要执行的下一条指令的地址。
作用
1、保证CPU的处理器切换线程执行时等待的线程恢复执行之后能回到正确的位置继续执行(CPU的处理器在任一时间只能执行一个线程的指令并且会不断切换线程执行)。
2、程序控制流的指示器分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖程序计数器完成。
特性
1、唯一一个在Java虛拟机规范中没有规定任何OutotMemoryError情况的区域
2、对于Java方法则会存储线程要执行的当前Java方法JVM的指令地址对于native方法则未指定值(undefined)。
如图Java方法编译之后会生成JVM字节码指令字节码指令并不能被CPU直接执行需要通过字节码执行引擎解释成机器码执行字节码执行引擎通过程序计数器中存储指令地址找到对应的字节码指令如果执行引擎中正在执行0对应的指令程序计数器中则记录的下一条指令的地址就是3,紧接着就是4,5,6如此推进。