代码之家  ›  专栏  ›  技术社区  ›  Ruslan

Java内存区

  •  0
  • Ruslan  · 技术社区  · 7 年前

    我已经读了很多关于java内存区域的书,但看起来它只是一团乱。主要是由于引入了新的 MetaSpace PermGen 在java8中。现在有一些问题:

    1. 政府在哪些方面采取行动 heap 是否包含在java8+中?
    2. static 方法和变量存储在java8和java8+之前?
    3. 是吗 元空间
    4. JVM ?

    谢谢你的回答。

    1 回复  |  直到 7 年前
        1
  •  12
  •   apangin    7 年前
    1. 内存区域的结构是否取决于JVM的实现?

    1. 堆在java8+中包括哪些区域?

    Java堆的结构取决于所选的GC算法。例如,通过并行GC和CMS,堆被分为老代和年轻代,后者由伊甸园和两个幸存者空间组成。

    G1堆被划分为大小相同的区域。Epsilon GC堆是单个单片区域。等等

    1. 静态方法和变量在java8和java8+之前存储在哪里?

    1. 元空间是否存储除类元数据信息以外的任何内容?

    以下项存储在元空间中:

    • 类(其内部表示)
    • 基本数组(例如,字段元数据表示为一个无符号短数组)
    • 方法及其字节码
    • 方法计数器
    • 注释

    推荐文章