JVMとCLRの違いは何ですか

目次:

Anonim

NS 主な違い JVMとCLRの間では、 JVMはJavaバイトコードを実行するために使用される仮想マシンであり、CLRは.NETプログラムの実行を管理する仮想マシンです。

JVMまたは Java仮想マシン Javaソースコードをコンパイルすることによって生成されるバイトコードを実行できます。多くのハードウェアおよびソフトウェアプラットフォームで利用できます。つまり、JVMはプラットフォームに依存します。一方、CLRまたは 共通言語ランタイム.NETFrameworkで記述されたプログラムを実行するための環境を提供します。また、型安全性、例外処理、ガベージコレクション、スレッド管理、セキュリティなどの追加サービスも提供します。

CLR、共通言語ランタイム、JVM、Java仮想マシン

JVMとは

Javaプログラムは、Javaプログラミング言語で記述された一連の命令です。これは、コンピューターが特定のタスクを実行するための指示を提供します。さらに、プログラマーが作成したプログラムをソースコードと呼びます。このソースコードはプログラマーには読め、理解できますが、コンピューターには理解できません。 Javaソースコードをコンパイルするとき、Javaコンパイラはそのコードをバイトコードと呼ばれる中間コードに変換します。次に、JVMはこのバイトコードをマシンコードに変換して、プログラムで定義されたタスクを実行できるようにします。

Javaソースコードをバイトコードに変換する場合、物理マシン用には記述されていません。これはJVM用に書かれています。したがって、バイトコードは、JVMを備えた任意のマシンで実行できます。ここで、バイトコードはプラットフォームに依存しないのに対し、JVMはプラットフォームに依存することに注意してください。

CLRとは

CLRまたは 共通言語ランタイム は、.NETFrameworkのランタイム環境を提供する仮想マシンです。また、.NETFrameworkのすべてのバージョンはCLRで構成されています。プログラミング言語に関係なく、.NETFrameworkで記述された任意のプログラムを実行できます。

さらに、プログラマーは.NET Frameworkで、C#、Visual Basic、F#などのさまざまな言語でプログラムを作成できます。ただし、コンパイル後、Microsoft Intermediate Language(MIL)と呼ばれる中間コードが生成されます。次に、Just-In-Compiler(JIT)は、その中間コードをマシンコードにコンパイルします。したがって、この最終的なマシンコードはコンピューターによって理解可能であり、定義されたタスクを実行できます。

一方、CLRには複数の利点があります。言語間の統合、例外処理、強化されたセキュリティ、および展開のサポートを提供します。さらに、CLRはパフォーマンスを向上させます。また、メモリを管理し、デバッグを簡単に実行するためのガベージコレクタを提供します。

JVMとCLRの違い

意味

JVMは、コンピューターがJavaプログラムを実行し、それらをJavaバイトコードにコンパイルできるようにする仮想マシンです。 CLRは、.NETプログラムの実行を管理するMicrosoft.NETFrameworkの仮想マシンです。したがって、これがJVMとCLRの根本的な違いです。

完全形

協会

また、JVMはJavaプログラミング言語に関連付けられていますが、CLRは.NETフレームワークに関連付けられています。

主な機能

JVMとCLRのもう1つの違いは、JVMを使用してバイトコードをマシンコードに変換することですが、CLRは.NETFrameworkのランタイム環境を提供します。

結論

JVMはJava仮想マシンの略で、CLRは共通言語ランタイムの略です。簡単に言うと、JVMとCLRの違いは、JVMはJavaバイトコードを実行する仮想マシンであるのに対し、CLRは.NETプログラムの実行を管理する仮想マシンであるということです。

リファレンス

1.「Java仮想マシン」。ウィキペディア、ウィキメディア財団、2018年9月29日、こちらから入手可能2。 「.NETFramework– CLR」、Tutorials Point(India)Pvt。 Ltd.、2016年12月6日、こちらから入手可能3。 「共通言語ランタイム。」ウィキペディア、ウィキメディア財団、2018年9月5日、こちらから入手できます。

画像提供:

1. Michelle Ridomiによる「JvmSpec7」– Commons Wikimedia2を介した自作(CC BY-SA 4.0)。 Microsoftによる「Microsoft.NETロゴ」–(パブリックドメイン)CommonsWikimedia経由

JVMとCLRの違いは何ですか