0

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

4

2 回答 2

1

静态成员:永久代(堆)

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

于 2015-03-18T05:46:42.200 回答
0

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

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