欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jvm原理

程序员文章站 2022-04-28 10:21:48
1.JVM运行时数据区 (1)程序计数器:线程私有,可以看做是当前线程所执行的字节码的行号指示器。选取下一条字节码指令、分支、线程恢复等都需要程序计数器来完成。 (2)虚拟机栈:同样是线程私有,它描述的是java方法执行的内存模型:每个方法在执行的同时,都会创建一个栈帧,用来存放局部变量表、操作数栈 ......

1.jvm运行时数据区

jvm原理

(1)程序计数器:线程私有,可以看做是当前线程所执行的字节码的行号指示器。选取下一条字节码指令、分支、线程恢复等都需要程序计数器来完成。

(2)虚拟机栈:同样是线程私有,它描述的是java方法执行的内存模型:每个方法在执行的同时,都会创建一个栈帧,用来存放局部变量表、操作数栈、方法出口等信息。java方法从调用到执行,对应着一个栈帧在虚拟机栈中的入栈与出栈。

 (3)本地方法栈:与虚拟机栈的作用类似,不同的是虚拟机栈为java方法的执行服务,而本地方法栈为本地方法服务。

(4)堆:线程共享,是java虚拟机中所管理内存最大的一部分,它用来存放对象实例以及数组。

(5)方法区:与java堆一样是线程共享的,用于存储已经被虚拟机加载的类信息、常量、静态变量。

2.jvm中对象的创建过程

jvm原理