zoukankan      html  css  js  c++  java
  • JVM运行时数据区域

    这是我阅读JVM规范的注释,我画了一个图表,帮助我理解。

    JVM运行时数据区

     

    1、每个线程的数据区域(不共享)

    每个线程的数据区域包括程序计数器寄存器、JVM堆栈和本机方法堆栈。它们都是在创建新线程时创建的。

    • 程序计数器寄存器:用于控制每个线程的每次执行。
    • JVM堆栈:它包含如下图所示的帧。
    • 原生方法栈:支持原生方法,即非Java语言方法。 

    2、所有线程共享的数据区域

    共享所有堆线程和方法。

    • Heap:这是我们最常接触的领域。并在JVM启动时存储对象。垃圾收集工作在这个地区。
    • 方法区:它存储运行时常量池、字段和方法数据以及方法和构造函数代码
    • 运行时常量池:它是类文件中常量池表的每个类或每个接口的运行时表示。它包含几种常量,从编译时已知的数字字面值到必须在运行时解析的方法和字段引用。

    JVM堆栈

    堆栈包含帧,并且在调用方法时将帧推送到堆栈中。帧包含局部变量数组、操作数堆栈、对常量池的引用。

  • 相关阅读:
    51nod 1138 【数学-等差数列】
    hdoj3665【简单DFS】
    hdoj3664【DP】
    51nod1270 【dp】
    51nod 1069【思维】
    关于一些数学符号和概率的阐述;
    51nod 1428【贪心】
    51nod 1133【贪心】
    51nod1127【尺取】
    51nod1126【矩阵快速幂】
  • 原文地址:https://www.cnblogs.com/crelle/p/13675369.html
Copyright © 2011-2022 走看看