【问题标题】:Where does the Static members reside in memory,is it permanent generation? [duplicate]静态成员驻留在内存中的哪个位置,是永久代吗? [复制]
【发布时间】:2015-05-20 19:20:28
【问题描述】:

静态成员驻留在哪里。 我需要详细说明静态、本地和实例成员内存分配(变量、方法)。 内存管理(是否为永久代)。

【问题讨论】:

    标签: java memory-management static static-members permanent-generation


    【解决方案1】:

    静态成员:永久代(堆)

    局部变量:不是堆的堆栈内存。 参考这里http://tutorials.jenkov.com/java-concurrency/java-memory-model.html

    【讨论】:

    • 不幸的是,最新的 Java 版本并非如此
    【解决方案2】:

    这取决于您使用的 Java 版本:

    1. Java8 之前:静态(就像其他“永久”事物一样)存储在PermGen 中。它只是内存模型的一部分,就像年轻一代和老一代一样。
    2. Java8:这里 PermGen 被删除了!出于多种原因,例如很难对其进行调整。当然,所有数据并没有被遗弃,因为我们仍然需要它。它刚刚被移动到Metaspace,它驻留在本机内存中(因此在 Java 堆之外)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-11
      • 2016-12-13
      • 1970-01-01
      • 2020-07-17
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 2013-11-10
      相关资源
      最近更新 更多