Javaでクラスローダーがクラスファイルをロードするとき、ロードされたクラスはどこにありますか? ヒープで?オブジェクトがヒープにあることは理解していますが、クラス自体はどうですか? Java ではクラスもオブジェクトなので、ヒープ上にあると思いますか?
質問する
1805 次
2 に答える
1
ロードされたクラス (メソッド、フィールドなど) に関連付けられた情報は、メソッド領域にあります。
メソッド領域は論理的にはヒープの一部ですが、単純な実装では、ガベージ コレクションや圧縮を行わないことを選択する場合があります。このバージョンの Java 仮想マシン仕様では、メソッド領域の場所や、コンパイルされたコードの管理に使用されるポリシーは必須ではありません。
メソッド領域は、ヒープの一部である場合とそうでない場合があります。それを格納する場所を決定するのは、完全に JVM 実装次第です。
Class
オブジェクト自体はヒープに格納されます。
于 2013-07-04T16:34:41.120 に答える