静态成员在内存中的位置是永久生成的吗?

这个问题在这里已经有了答案:

  • 在Java中存储静态方法和静态变量在哪里? 7个答案

  • 静态成员:永久代(堆)

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


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

  • Pre Java8:静态(就像其他“永久”事物一样)存储在PermGen 。 它只是年轻一代和老一代的记忆模型的一部分。
  • Java8:这里PermGen被删除了! 出于多种原因,例如很难对其进行调整。 当然,所有的数据都不会被抛弃,因为我们仍然需要它。 它只是移动到Metaspace ,它驻留在本机内存中(所以在Java堆外部)。
  • 链接地址: http://www.djcxy.com/p/14547.html

    上一篇: Where does the Static members reside in memory,is it permanent generation?

    下一篇: Where does the Java store the final member and static member?