ホームページ >Java >&#&チュートリアル >Java 仮想マシンの詳細な概要
Oracle によって正式に定義された Java テクノロジー システムには主に次の部分が含まれます:
Java プログラミング言語
さまざまなプラットフォーム用の Java 仮想マシン
Java API クラス ライブラリ
サードパーティ Java クラス ライブラリ
Java プログラミング言語、Java 仮想マシン、および Java API クラス ライブラリの 3 つの部分を総称して JDK (Java Development Kit) と呼ぶことができます。 Javaプログラム開発のための最低限の環境です。また、Java API における Java SE API サブセットと Java 仮想マシンを総称して JRE (Java Runtime Environment) と呼び、Java プログラムを実行するための標準環境です。
Java 仮想マシンが「仮想」と呼ばれる理由は、それが仕様によって定義された単なる抽象的なコンピューターだからです
HotSpot VM
Oracle JDK および OpenJDK に付属する仮想マシンは、最も主流で広く使用されている Java 仮想マシンです。 Java 仮想マシンを紹介する技術記事は、特に指定がない限り、ほとんどが HotSpot VM を紹介しています。 HotSpot VM は Sun によって開発されたのではなく、小規模企業 Longview Technologies によって設計されました。同社は 1997 年に Sun に買収され、Sun は 2009 年に Oracle に買収されました。
J9 VM
J9 VM は IBM によって開発された VM であり、現在 IBM の主な開発 Java 仮想マシンです。 J9 VM の市場での位置付けは HotSpot VM に近いです。J9 VM の現在のパフォーマンス レベルは、HotSpot VM とほぼ同じレベルです。 VM。 Zing VM
Oracle の HotSpot VM に基づいており、レイテンシーに影響を与える多くの詳細が改善されています。 3 つの最大のセールス ポイントは次のとおりです:
。
classloaderはハードディスク上のクラスファイルをJVMのランタイムデータ領域にロードしますが、クラスファイルが実行できるかどうかについては責任を負いません。それは実行エンジンの責任です。
Java 仮想マシンの抽象仕様は単なる概念です。一般に、この実装は複数のプロバイダーから提供され、複数のプラットフォームに存在する場合があります。完全にソフトウェアで実装することも、ハードウェアとソフトウェアの組み合わせで実装することもできます。 5. 仮想マシンのライフサイクル
ランタイム Java 仮想マシン インスタンスの制限された義務は次のとおりです: Java プログラムを実行します。Java プログラムが開始されると、仮想マシン インスタンスが生成されます。プログラムが閉じられて終了すると、仮想マシン インスタンスも停止します。 3 つの Java プログラムを同じコンピュータ上で同時に実行すると、3 つの Java 仮想マシン インスタンスが取得されます。各 Java プログラムは、独自の Java 仮想マシン インスタンスで実行されます。 Java 仮想マシン インスタンスは、初期クラスの main() メソッドを呼び出して Java プログラムを実行します。 main() メソッドはパブリックかつ静的であり、戻り値が void で、パラメータとして文字列配列を受け入れる必要があります。このような main() メソッドを持つクラスは、Java プログラムを実行するための開始点として使用できます。
上記の例では、Java プログラムの初期クラスの main() メソッドがプログラムの初期スレッドの開始点として使用され、他のスレッドはこの初期スレッドによって開始されます。
Java 仮想マシン内には、デーモン スレッドと非デーモン スレッドの 2 種類のスレッドがあります。 デーモン スレッドは通常、ガベージ コレクション タスクを実行するスレッドなど、仮想マシン自体によって使用されます。ただし、Java プログラムは、作成したスレッドをデーモン スレッドとしてマークすることもできます。 Java プログラムの初期スレッド、つまり main() で開始されるスレッドは、非デーモン スレッドです。
デーモン以外のスレッドが実行されている限り、Java プログラムは実行され続けます。 プログラム内のデーモン以外のスレッドがすべて終了すると、仮想マシン インスタンスは自動的に終了します。セキュリティ管理者が許可すれば、RuntimeクラスまたはSystemクラスのexit()メソッドを呼び出してプログラム自体を終了することもできます。
以上がJava 仮想マシンの詳細な概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。