JDK、JRE、JVMの違い。
3つのJDK、JRE、JVMはすべて相互に依存しており、共通点がないため、表形式でそれらの違いを述べることは効果的ではありませんが、これらについては次の段落で説明します。
JVM
JVMはJava仮想マシンの略語であり、基本的にはJavaバイトコードを実行できるランタイム環境を提供する仕様です。つまり、抽象的であり、その実装はアルゴリズムの選択に依存せず、Sunや他の企業によって提供されています。 。バイトコードをマシン固有のコードに変換するのはJVMです。また、他の言語で記述され、Javaバイトコードにコンパイルされたプログラムを実行することもできます。JVMは、コードのロード、コードの検証、コードの実行、ランタイム環境の提供などのタスクを実行します。
JRE
JREは、JVMの実装であるJavaランタイム環境です。つまり、JVMで定義された仕様が実装され、コードの実行に対応する環境が作成されます。JREは、物理的に存在するJVMと同様にプログラムを実行するために、主にJavaバイナリとその他のクラスで構成されます。 JREは、Javaバイナリに加えて、さまざまなデプロイメントテクノロジ、実行されたコードと対話するためのユーザーインターフェイス、さまざまな機能と言語の基本ライブラリ、およびutilベースのライブラリで構成されています。
JDK
JDKはJavaDevelopmentKitの略で、Java Programのコンパイル、デバッグ、実行に必要なすべてのツール、実行可能ファイル、バイナリが含まれています。JDKはプラットフォームに依存します。つまり、Windows、Mac、Unixシステム用に個別のインストーラがあります。JDKにはJVMとJREであり、コードの実行に完全に責任があります。 Javaのバージョンを表すJDKのバージョンです。
JDK、JRE、JVMの重要な違いは次のとおりです
Sr。いいえ。 | キー | JDK | JRE | JVM |
---|---|---|---|---|
1 | 定義 | JDK(Java Development Kit)は、Javaでアプリケーションを開発するためのソフトウェア開発キットです。 JREに加えて、JDKには多数の開発ツール(コンパイラ、JavaDoc、Javaデバッガなど)も含まれています。 | JRE(Javaランタイム環境)はJVMの実装であり、Javaクラスライブラリ、Java仮想マシン(JVM)、およびJavaプログラミングで記述されたアプリケーションを実行するその他のコンポーネントを提供するソフトウェアパッケージとして定義されています。 | JVM(Java仮想マシン)は、プラットフォームに依存する抽象マシンであり、仕様として3つの概念、JVM実装の要件を説明するドキュメント、実装、JVM要件を満たすコンピュータープログラム、およびインスタンス、実装を備えています。 Javaバイトコードを実行するは、Javaバイトコードを実行するためのランタイム環境を提供します。 |
2 | プライム機能 | JDKは主にコードの実行に使用され、開発の主要な機能を備えています。 | 一方、JREは、コード実行のための環境の作成を主に担当します。 | 一方、 JVMはすべての実装を指定し、これらの実装をJREに提供する責任があります。 |
3 | プラットフォームの独立性 | JDKはプラットフォームに依存します。つまり、プラットフォームごとに異なるJDKが必要です。 | JDKのように、JREもプラットフォームに依存します。 | JVMはプラットフォームに依存しません。 |
4 | ツール | JDKはプライム開発を担当しているため、Javaアプリケーションの開発、デバッグ、および監視のためのツールが含まれています。 | 一方、JREには、コンパイラやデバッガなどのツールは含まれていません。むしろ、JVMがプログラムを実行するために必要なクラスライブラリやその他のサポートファイルが含まれています。 | JVMにはソフトウェア開発ツールは含まれていません。 |
5 | 実装 | JDK =Javaランタイム環境(JRE)+開発ツール | JRE =Java仮想マシン(JVM)+アプリケーションを実行するためのライブラリ | JVM=Javaバイトコードを実行するためのランタイム環境のみ。 |
-
Javaのwait()メソッドとsleep()メソッドの違いは?
sleep()メソッド 静的です スレッドの方法 クラスであり、現在実行中のスレッドを「実行不可」状態に送信できます 一方、 wait() メソッドはインスタンスメソッドであり、スレッドオブジェクトを使用して呼び出しており、そのオブジェクトに対してのみ影響を受けます。 sleep() 時間切れ後のメソッドウェイクアップまたはinterrupt()の呼び出し メソッド、 wait() 時間切れ後のメソッドウェイクアップまたはnotify()の呼び出し またはnotifyAll() 方法。 sleep() メソッドはロックまたはモニートを解放しません r待機中、 wait() メソッドは、待機
-
JREとJDKの違いは何ですか?
JDK (Java Development Kit)には、JREを含むJavaアプリケーションを開発および実行するために必要なすべてのツールとライブラリが含まれています。 JRE Javaランタイム環境は、Javaプログラムの実行に必要なJVMおよびその他のライブラリを含むソフトウェアです。