静态成员驻留在内存中的什么位置,是永久代吗?
Where does the Static members reside in memory,is it permanent generation?
静态成员所在的位置。
我需要静态、本地和实例成员内存分配(变量、方法)的详细解释。
内存管理(是否是永久代)
这取决于您使用的 Java 版本:
- Pre Java8:静态(就像其他 "permanent" 事物一样)存储在
PermGen
中。它只是内存模型的一部分,就像年轻一代和老一代一样。
- Java8: 这里 PermGen 被移除了!由于多种原因,例如很难对其进行调整。当然,所有数据并没有被丢弃,因为我们仍然需要它。它刚刚被移动到
Metaspace
,它驻留在本机内存中(因此在 Java 堆之外)。
静态成员:永久代(堆)
局部变量:不是堆的堆栈内存。
参考这里 http://tutorials.jenkov.com/java-concurrency/java-memory-model.html
静态成员所在的位置。 我需要静态、本地和实例成员内存分配(变量、方法)的详细解释。 内存管理(是否是永久代)
这取决于您使用的 Java 版本:
- Pre Java8:静态(就像其他 "permanent" 事物一样)存储在
PermGen
中。它只是内存模型的一部分,就像年轻一代和老一代一样。 - Java8: 这里 PermGen 被移除了!由于多种原因,例如很难对其进行调整。当然,所有数据并没有被丢弃,因为我们仍然需要它。它刚刚被移动到
Metaspace
,它驻留在本机内存中(因此在 Java 堆之外)。
静态成员:永久代(堆)
局部变量:不是堆的堆栈内存。 参考这里 http://tutorials.jenkov.com/java-concurrency/java-memory-model.html