JVMの操作機構
JVM(Java仮想マシン)は、バイトコード命令セット、プログラム・レジスタのセットは、仮想マシンのスタック、方法およびガベージコレクタ領域、JVM上で稼働しているオペレーティングシステムを含む、Java仮想マシンのバイトコードであります上記、ハードウェアデバイスではない相互作用を直接行います
Javaソースファイルが.classファイルが順番に異なるオペレーティング・システム上で実行するマシンコードにコンパイルJVMインタプリタあり、次の対応する.classファイルにコンパイラによってコンパイルされ、各システムは、異なるインタプリタですしかし、仮想マシンのインタプリタの実装に基づいて仮想マシンを起動し、Javaプロセスが実行した後、クロスプラットフォームのJavaの原因である、と同じでインスタンス化、および複数のプロセスが開始され、それが複数の仮想マシンインスタンスをインスタンス化します、プロセスの終了または停止は、仮想マシンのインスタンス終焉は、複数の仮想マシンのインスタンス間でデータを共有することはできません
Javaプログラムの詳細な動作
バイトコードファイルにコンパイルされたJavaソースファイルの最初のステップ |
ステップJVM対応するマシンコードのオペレーティングシステムにバイトコードファイルをコンパイル |
第三工程のマシンコードは、適切なオペレーティングシステムのネイティブメソッドライブラリ各メソッドを呼び出し |
Java仮想マシンは、クラスローダ・サブシステム(クラスローダサブシステム)、実行時のデータ領域(ランタイムデータ領域)実行エンジンとローカルインタフェースのライブラリが含まれています。ネイティブメソッドライブラリおよびオペレーティングシステムの配信を呼び出すことにより、ローカルインタフェースライブラリ
ランタイムデータ領域に分かれている:メソッドエリア、ローカルエリア方法、仮想マシンのスタック(スタックフレーム)、仮想マシンのヒープ(古い時代の、新生代)プログラムカウンタ、
クラスローダサブシステム
実行エンジン
ローカルインタフェースライブラリ
ネイティブメソッドライブラリ
オペレーティングシステムのための最低レベル
間で
コンパイルされた.classファイルのクラスローダサブシステムは、JVMをロードするために使用されます
プログラムカウンタ、方法エリアおよびローカルエリア方式、仮想スタックマシン、仮想マシンのヒープを含む、JVMの動作中に生成されたデータを格納するためのランタイムデータ領域
即時実行エンジンは、コンパイラとガベージコレクタ、特定のマシンコード処理のための時間コンパイラのJavaバイトコードコンパイラを含む、対象の回復動作時にガベージコレクタは、もはや使用されません
オペレーティングシステムの具体的な指示操作が完了すると、ライブラリのローカルコールのネイティブメソッドインタフェースライブラリ
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------本「への提供」を参照