工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

JDK vs JRE vs JVM:主な違い

JDK とは

JDK は、アプレットや Java アプリケーションの作成に使用されるソフトウェア開発環境です。 JDK の完全な形式は Java Development Kit です。 Java 開発者は、Windows、macOS、Solaris、および Linux で使用できます。 JDK は、Java プログラムのコーディングと実行を支援します。同じコンピューターに複数の JDK バージョンをインストールすることができます。

このチュートリアルでは、次のことを学びます:

JRE とは

JRE は、他のソフトウェアを実行するように設計されたソフトウェアの一部です。これには、クラス ライブラリ、ローダー クラス、および JVM が含まれています。簡単に言えば、Java プログラムを実行するには JRE が必要です。プログラマーでない場合は、JDK をインストールする必要はありませんが、Java プログラムを実行するための JRE だけをインストールする必要があります。ただし、すべての JDK バージョンには Java ランタイム環境がバンドルされているため、PC に JRE を個別にダウンロードしてインストールする必要はありません。 JRE の完全な形式は Java ランタイム環境です。

JVM とは

JVM は、Java コードまたはアプリケーションを駆動するランタイム環境を提供するエンジンです。 Java バイトコードを機械語に変換します。 JVM は Java 実行環境 (JRE) の一部です。個別にダウンロードしてインストールすることはできません。 JVM をインストールするには、JRE をインストールする必要があります。 JVM の完全な形式は Java 仮想マシンです。

他の多くのプログラミング言語では、コンパイラは特定のシステム用のマシン コードを生成します。ただし、Java コンパイラは、JVM と呼ばれる仮想マシン用のコードを生成します。

主な違い

JDK を使用する理由

JDK を使用する重要な理由は次のとおりです。

JRE を使用する理由

JRE を使用する重要な理由は次のとおりです。

JVM を選ぶ理由

JVM を使用する重要な理由は次のとおりです。

JDK の機能

はこちら JDK の重要な機能:

JRE の機能

はこちら JRE の重要な機能:

JVM の機能

JVM の重要な機能は次のとおりです。

JDK の仕組み

<センター>

<図>

JDK の重要なコンポーネントは次のとおりです。

JRE の仕組み

<センター>

<図>

JRE には、JRE、ライブラリ クラス、および開発ツールを備えた JVM のインスタンスがあります。 Java コードを記述してコンパイルすると、コンパイラはバイト コードを含むクラス ファイルを生成します。

JRE の重要なコンポーネントは次のとおりです。

このようにして、Java プログラムは JRE で実行されます。

JVM の仕組み

<センター>

<図>

JVM の重要なコンポーネントは次のとおりです。

1) クラスローダー

クラスローダーは、クラスファイルをロードするために使用されるサブシステムです。 3 つの主要な機能を実行します。読み込み、リンク、および初期化。

2) メソッド エリア

JVM メソッド領域には、メタデータ、Java メソッドのコード、定数ランタイム プールなどのクラスの構造が格納されます。

3) ヒープ

すべてのオブジェクト、配列、およびインスタンス変数はヒープに格納されます。このメモリは複数のスレッドで共有されます。

4) JVM 言語スタック

Java 言語スタックには、ローカル変数とその部分的な結果が格納されます。すべてのスレッドには、スレッドの作成と同時に作成される独自の JVM 言語スタックがあります。メソッドが呼び出されると新しいフレームが作成され、メソッド呼び出しプロセスが完了すると削除されます。

5) PC レジスター

PC レジスタには、現在実行中の Java 仮想マシン命令のアドレスが格納されます。 Java では、各スレッドに個別の PC レジスタがあります。

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

ネイティブ メソッド スタックは、ネイティブ ライブラリに依存するネイティブ コードの命令を保持します。ネイティブ ヒープにメモリを割り当てるか、任意のタイプのスタックを使用します。

7) 実行エンジン

これは、ソフトウェア、ハードウェア、または完全なシステムをテストするために使用されるソフトウェアの一種です。テスト実行エンジンは、テストされた製品に関する情報を持ちません。

8) ネイティブ メソッド インターフェイス

Native Method Interface はプログラミング フレームワークです。これにより、JVM で実行されている Java コードをライブラリやネイティブ アプリケーションから呼び出すことができます。

9) ネイティブ メソッド ライブラリ

ネイティブ ライブラリは、実行エンジンに必要なネイティブ ライブラリ (C、C++) のコレクションです。

JDK、JRE、JVM の違い

JDK と JRE と JVM の主な違いは次のとおりです:

JDK JRE JVM
JDK の完全な形式は Java Development Kit です。 JRE の完全な形式は Java ランタイム環境です。 JVM の完全な形式は Java 仮想マシンです。
JDK は、Java でアプリケーションを開発するためのソフトウェア開発キットです。 Java コードを実行するために必要なコンポーネントを Java クラス ライブラリに提供するソフトウェア バンドルです。 JVM は Java バイト コードを実行し、それを実行するための環境を提供します。
JDK はプラットフォームに依存します。 JRE もプラットフォームに依存します。 JVM はプラットフォームに大きく依存します。
Java コードを開発、デバッグ、および監視するためのツールが含まれています。 JVM がプログラムを実行するために必要なクラス ライブラリとその他のサポート ファイルが含まれています。 JVM にはソフトウェア開発ツールは含まれていません。
JRE のスーパーセットです JDK のサブセットです。 JVM は JRE のサブセットです。
JDK を使用すると、開発者は、JRE および JVM で実行および実行できる Java プログラムを作成できます。 JRE は、JVM を作成する Java の一部です。 ソース コードを実行するのは Java プラットフォーム コンポーネントです。
JDK にはインストーラーが付属しています。 JRE には、ソース コードを実行するための環境のみが含まれています。 ソフトウェア JDK と JRE の両方に JVM がバンドルされています。

Java

  1. Java JDK、JRE、および JVM
  2. Java オペレーター
  3. Java コメント
  4. Java if...else ステートメント
  5. Java for-each ループ
  6. Java インターフェイス
  7. Java try-with-resources
  8. Java アノテーション
  9. Java 10 - 統合された JDK フォレスト
  10. Java 10 - スレッドローカル ハンドシェイク
  11. Java でのログイン:考慮すべき重要なヒント