JVM-运行时数据区

 

 

 

 

 

 

1:JVM运行时数据区(JVM Runtime Area)其实就是指JVM在运行期间,其对计算机内存空间的划分和分配。

 

 

 

 

运行时数据区
  class---->变量 变量 方法 --->JVM如何分散 操作?


方法区和堆

方法区:
  类信息,常量,静态变量。即时编译器编译后的代码

  生命周期是随着虚拟机启动而启动,所以他是所有线程共享的区域。

  Although the method area is logically part of the heap

  非堆,JDK1.7 perm space Jdk.1.8Metar space

堆:
  对象和数组分配的区域

  生命周期是随着虚拟机启动而启动,所以他是所有线程共享的区域。

 

 

线程独有的一些内容


线程是为了执行方法 :java虚拟机栈---->栈帧----->

java虚拟机栈:一个线程对应一个java虚拟机栈,线程执行发放给你的时候每个方法代表被装进去的栈帧

 

 

本地方法栈:方法是native的

PC寄存器:记录当前线程执行的位置(也就是方法执行到的位置)

运行时常量池:编译时期生成的各种字面量和符号引用

 


线程共享:方法区 堆 ---->线程不安全

线程独享:java虚拟栈 pc寄存器 --->线程安全


方法的执行 栈帧

栈帧(方法)包含的内容
a-局部变量表:局部变量的
b-操作数栈: 栈结构进行保存 先进先出
c-动态链接:
d-方法返回地址->

 

 

Topic 2. 虚拟机栈是什么?虚拟机栈里有什么?

 

Topic 3. 栈帧是什么?栈帧里有什么?

 

Topic 4. 方法区是什么?方法区里有什么?

 

 

运行数据区是个逻辑模型,要靠物理模型实现,就是JVM的内存模型:https://www.cnblogs.com/lanqingzhou/p/12374882.html

posted on 2020-02-27 21:33  pipizhou  阅读(190)  评论(0编辑  收藏  举报