jvm原理

 

1.JVM运行时数据区

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

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

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

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

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

2.JVM中对象的创建过程

 

posted @ 2019-04-02 18:04  菜鸟程序猿朱  阅读(68)  评论(0编辑  收藏  举报