网站硬件方案,中国石油天然气第七建设公司网站,杭州的设计网站建设,电商网页设计的主要内容JVM主要流程包括三部分#xff1a;
首先是 ClassLoard 类加载器#xff0c;加载数据源文件到jvm当中然后将加载好的数据存放在运行时数据区最后由引擎进行解释和编译的工作
1.Java 内存区域#xff1a; 1.1 程序计数器
程序计数器#xff08;Program Counter Register
首先是 ClassLoard 类加载器加载数据源文件到jvm当中然后将加载好的数据存放在运行时数据区最后由引擎进行解释和编译的工作
1.Java 内存区域 1.1 程序计数器
程序计数器Program Counter Register是一块较小的内存空间它可以看做是当前线程所执行的字节码的行号指示器。
字节码解释器通过改变程序计数器的值来选取下一条需要执行的字节码指令分支、循环、跳转、异常处理、线程恢复等基础功能都需要该计数器来完成。
每个线程都拥有一个独立的程序计数器各个线程之间的计数器互不影响独立存储。
1.2 虚拟机栈
虚拟机栈Java Virtual Machine Stack也是线程私有它描述的是 Java 方法执行的线程内存模型每个方法被执行的时候Java 虚拟机都会同步创建一个栈帧用于存储局部变量表、操作数栈、动态连接、方法出口等信息。
方法从调用到结束就对应着一个栈帧从入栈到出栈的过程。在《Java 虚拟机规范》中对该内存区域规定了两类异常
如果线程请求的栈深度大于虚拟机所允许的栈深度将抛出 StackOverflowError 异常如果 Java 虚拟机栈的容量允许动态扩展当栈扩展时如果无法申请到足够的内存会抛出 OutOfMemoryError 异常。