JVM运行时数据区域

一、执行Java程序时,内存划分:

1、程序计数器(Program Counter Register);
2、虚拟机栈(VM Stack);
3、本地方法栈(Native Method Stack);
4、方法区(Method Area);
5、堆(Heap);

1、程序计数器

当前线程执行字节码的行号的指示器;
每条线程都有独立的程序计数器;
Java方法记录执行的JVM字节码指令地址;
Native方法为空。

2、虚拟机栈

线程私有;
每个方法执行时产生一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等信息,执行开始到结束对应入栈到出栈的过程。

3、本地方法栈

与虚拟机栈类似,执行的是Native方法;

4、Java堆

所有线程共享;
GC管理的主要区域;
存放对象实例。

5、方法区

所有线程共享。
存储已加载的类信息、常量、静态变量、JIT后的代码;

运行时常量池

方法区的一部分,编译生成的字面量和符号引用存放在常量池。

直接内存

非JVM运行时的数据区部分。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • JVM运行时数据区域 原文:Run-Time Data Areas Java虚拟机定义了在程序执行期间使用的多个运...
    叠最厚的甲阅读 330评论 0 0
  • 此处的内容是根据Java虚拟机规范(Java SE 7)相关内容以及深入理解Java虚拟机等做的总结。可能有不对的...
    加大装益达阅读 340评论 0 2
  • 内容来自《深入理解Java虚拟机》和网络。 本篇结构: 程序计数器 Java 虚拟机栈 本地方法栈 Java 堆(...
    w1992wishes阅读 241评论 0 0
  • 前言: 周志明老师的《深入理解Java虚拟机》真的是一本特别好的书,看了有一小半,我决定从头开始做读书笔记,看完每...
    ChaosAlaska阅读 766评论 2 1
  • 运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各...
    lijiaccy阅读 216评论 0 0

友情链接更多精彩内容