4

Javaでクラスローダーがクラスファイルをロードするとき、ロードされたクラスはどこにありますか? ヒープで?オブジェクトがヒープにあることは理解していますが、クラス自体はどうですか? Java ではクラスもオブジェクトなので、ヒープ上にあると思いますか?

4

2 に答える 2

1

ロードされたクラス (メソッド、フィールドなど) に関連付けられた情報は、メソッド領域にあります。

メソッド領域は論理的にはヒープの一部ですが、単純な実装では、ガベージ コレクションや圧縮を行わないことを選択する場合があります。このバージョンの Java 仮想マシン仕様では、メソッド領域の場所や、コンパイルされたコードの管理に使用されるポリシーは必須ではありません。

メソッド領域は、ヒープの一部である場合とそうでない場合があります。それを格納する場所を決定するのは、完全に JVM 実装次第です。

Classオブジェクト自体はヒープに格納されます。

于 2013-07-04T16:34:41.120 に答える