3

重複の可能性:
静的変数の実際のメモリの場所は?

クラスで定義された静的インスタンス変数はどこに保存されますか? ヒープまたは永久世代?

JLS(Java SE 7以前とJava SE 7の両方)は次のように述べています:

17.4.1   Shared Variables
Memory that can be shared between threads is called shared memory or heap
memory.
All instance fields, static fields and array elements are stored in heap memory.

しかし、この投稿は次のように述べています。

Success Metrics
...
Class metadata, interned Strings and class static variables will be moved from the permanent generation to either the Java heap or native memory.
...

Description
...
Class metadata and statics are allocated in the permanent generation when a class is loaded and are garbage collected from the permanent generation when the class is unloaded. Interned Strings are also garbage collected when the permanent generation is GC’ed.
...

上記の投稿によると、統計は永続的な生成領域にあります。

どちらが正しい??

4

1 に答える 1

1

記事で

パーマネント世代と呼ばれる Java ヒープの一部

したがって、永続的な世代ヒープにあります。

于 2012-11-03T16:03:19.393 に答える