ランタイムデータ領域

プログラムカウンタ

プログラムカウンタレジスタ

バイトコードインタプリタは、次に実行する命令、ブランチを選択するために、カウンタのバイトコードの値を変更することにより、作業ループ、分岐、例外処理、およびその他の基本的な機能は、スレッド回復しているされて概念モデルでは、仮想マシン、このカウンターに頼る必要が完了です。

プライベートスレッド、この地域では唯一の1は、Java仮想マシン仕様の任意の領域のOutOfMemoryErrorの状況を指定できません。

スレッドは、Javaメソッドを実行している場合、カウンタは、実行中の仮想マシンのバイトコード命令のアドレスを記録し、この方法は、ネイティブに実行されている場合、このカウンタの値がヌル(未定義)です。

Java仮想マシン・スタック

Java仮想マシンのスタック

各方法を実行するローカル変数テーブル、オペランドスタック、動的リンク方式を格納するためのスタックフレーム(スタック・フレーム)を作成する一方:プライベートスレッド、仮想マシンのスタック・メモリ・モデルは、Javaメソッドが実行説明しました輸出およびその他の情報。

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

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

同様の効果を持つVMスタックは、それらの間の違いは、ネイティブサービスのメソッドを使用して仮想マシンのネイティブメソッドスタックです。

Javaヒープ

Javaヒープ

Javaヒープは、この仮想マシンが格納されているオブジェクトインスタンスの唯一の目的のためにメモリ領域のすべてのスレッドで共有され、ほぼすべてのオブジェクトのインスタンスがメモリを割り当てるためにここにいます。

メソッド地区

メソッドのエリア

メソッド領域は、そのような情報を格納するために使用されるスレッド共有メモリ領域は、仮想マシン、定数、静的変数、コードデータインタイムコンパイルをロードされたもです。多くの人々はまた、世代と呼ばれる永久的なメソッドエリア(Permanent世代を)置きます

このエリアのメモリの回復は、定数プールの種類のリサイクルとアンロードのために主にあります。

ランタイム定数プール

ランタイム定数プール領域は、メソッドの一部です。情報は、定数プール(定数プールテーブル)であるクラス、フィールド、メソッド、インターフェース記述情報に加えて、クラス・ファイルのバージョン、および様々なリテラルのコンパイル生成された基準シンボルを格納するため、この部分操作の方法は、クラスローディング時定数ストレージプールの後領域に入ります。

发布了303 篇原创文章 · 获赞 112 · 访问量 38万+

おすすめ

転載: blog.csdn.net/u012326462/article/details/104219601