Java运行时数据区

1、运行时数据区划分

在这里插入图片描述

2、各区域职责介绍
  • 程序计数器
    每个线程独有,记录线程被中断时的执行的1字节码指令位置,可以理解为线程执行到的行号;该部分内存是JVM内存中唯一不会出现OOM的内存区域;执行native方法时程序计数器为空;
  • 虚拟机栈
    每个方法在被执行的时候,都会在线程对应的栈中创建一个栈帧,栈帧包含了局部变量表,操作数栈,动态链接,方法出口等信息;局部变量表中存放8种基本类型的变量、对象引用和returnAddress;
  • 本地方法栈
    和虚拟机栈功能类似,本地方法栈只为本地方法提供服务;

  • Java堆分为了新生代和老年代,其中新生代又分为了Eden空间、From Survivor空间、To Survivor空间;
  • 方法区
    存储类信息,常量,静态变量,运行时常量池,即时编译后的代码;在Java7中方法区的实现为永久代,永久代在JVM内存中;在Java8中方法区的实现为元数据区,元数据区在物理直接内存中;
发布了21 篇原创文章 · 获赞 13 · 访问量 8181
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章