1. クラス ロード サブシステム: ファイル システム またはネットワークから クラス 情報をロードする責任を負い、ロードされた情報はメソッド領域と呼ばれるメモリ空間に保存されます。
2. メソッド領域: クラス情報、定数情報、文字列リテラルや数値定数などの定数プール情報が格納されます。メソッド領域は補助スタックのブロック永続領域であり、スタック情報の生成を解決するための前提条件です。
3. Java ヒープ: Java 仮想マシンの起動時に確立され、ほとんどすべての オブジェクト インスタンスが Java ヒープ領域に保存されます。すべてのスレッドで共有されます。ヒープは、データ ストレージの問題、つまりデータをどこにどのように配置するかという問題を解決します。
4. ダイレクト メモリ: Java の NIO ライブラリにより、Java プログラムはダイレクト メモリを使用できるため、通常、ダイレクト メモリの速度は Java ヒープよりも優れています。読み取りと書き込みが頻繁に行われる状況での使用を検討するとよいでしょう。
5. 各仮想マシン スレッドにはプライベート スタックがあり、スレッドの Java スタックは、ローカル 変数、Java メソッドの呼び出しと戻り値を保存します。スタックは、プログラムの実行上の問題、つまりプログラムの実行方法やデータの処理方法を解決します。
6. ローカル メソッド スタック: Java スタックと非常に似ていますが、最大の違いは、ローカル メソッド スタックがローカル メソッド呼び出しに使用されることです。Java 仮想マシンはローカル メソッドを直接呼び出すことができます。
7. ガベージ コレクション システム: Java の核となるものであり、Java にはガベージ クリーニングのための独自のメカニズムがあるため、開発者が手動でクリーニングする必要はありません。
8. PC レジスタ: 各スレッドのプライベート空間。Java スレッドは常に現在のメソッドと呼ばれます。メソッド ローカル メソッドでない場合、PC レジスタは現在実行中の命令を実行します。ローカル メソッドの場合、PC レジスタの値は、現在の実行環境ポインタ、プログラム カウンタ、オペレーションなどの情報を格納します。スタックポインタと計算変数ポインタ。
9. 仮想マシンのコアコンポーネントは、仮想マシンのバイトコードを実行する役割を果たします。通常、ユーザーはそれをマシンコードにコンパイルしてから実行します。
以上がJava 仮想マシンの基本概念の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。