Java仮想マシンの5つの領域が実行されています

5つの領域JAVA仮想マシンの実行時

1.プログラムカウンタ

(1)小さなメモリ空間、プログラムの実行時の行番号インジケータは、実行すべき次の命令を選択することに依存しています。

(2)スレッドプライベートエリア。

(3)メソッドJavaスレッドの実行、カウンタは、実行中の仮想マシンのバイトコード命令のアドレスを記録します。

(4)だけでなく、メモリ領域のOutOfMemoryError。

2. VMスタック

(1)プライベートエリア、同じスレッドのライフサイクルを通します。

Javaメモリー・モデルは、以下の(2)で行われる方法です。

(3)一方、各Javaメソッドを実行し、ローカル変数テーブル等を記憶するためのスタックフレームを作成します。

(4)実行を完了するために、各Javaメソッド呼び出しから、スタックフレームは、仮想マシンスタックにスタックをプッシュする処理に相当します。

(5)の深さよりスレッド要求スタック深さより大きいが、スロー例外にStackOverflowErrorを可能にしました。

(6)仮想マシンのスタックの動的な拡張と拡張の要求がStackOverflowError例外をスローするのに十分なスペースを使用することはできない場合。

3.ネイティブメソッドスタック

Java仮想マシンのスタック効果は、ネイティブメソッドのサービスのためのJava仮想マシンスタックサービスメソッド、ネイティブメソッドスタックを除いて、ほぼ同じです。ネイティブメソッドは、C ++との共同開発を使用している場合、Javaの開発者が独自のネイティブメソッドを持っていない使用されています。

4.ヒープ

(1)すべてのスレッドによって共有されます。

(2)唯一の目的は、オブジェクト・インスタンスを格納することです。

(3)ガベージコレクション(ガベージコレクション)プライマリゾーン。

そこインスタンスの配布を完了するために何のヒープメモリがなく、ヒープを拡張することができない場合は(4)、それはOutOfMemoryErrorの例外がスローされます。

メソッド領域

(1)すべてのスレッドによって共有されます。(2)クラス情報記憶部は、仮想マシン、定数および静的変数がロードされています。(3)は、それはいくつかの問題であってもよいし、良い、ガベージコレクションを実装していないが、時々収集することはできません。メモリ割り当て領域の方法は、需要を満たすことができない場合(4)、例外がOutOfMemoryErrorがスローされます。

 

公開された415元の記事 ウォンの賞賛434 ビュー210 000 +

おすすめ

転載: blog.csdn.net/qq_41901915/article/details/103499294