はじめに
今回の記事では、JVMとJavaのプログラムが実行されるまでの一連の流れをまとめました。
JVMとは
JVM(Java Virtual Machine)とは、Java仮想マシンとも呼ばれ、Javaのプログラムを動かすために必要なソフトウェアです。
JVMを理解するために必要な知識
コンパイラ
コンパイラは、ソースコード(.java file)をバイトコード(.class file)に変更します。そして、コンパイラはソースコードに構文エラーがないかをチェックします。エラーを発見した際には、コンパイルエラー(Compile Time Error)がスローされます。
バイトコード
コンパイルの結果生成されたコードで、ソースコードと機械語の仲介役です。バイトコードは、JVMによって処理されます。これにより、JVMを保持するシステムは、OSに関係なくJavaのプログラムを実行することができます。
機械語
コンピュータが理解できるコードで、CPUによって処理されます。機械語は0と1の2進数で表現されます。
なぜJVMが必要なのか
JVMはどんな環境でもJavaのプログラムを実行できるようにします。Javaのプログラムがコンパイルされると、バイトコードが生成されます。このバイトコードがJVMによって機械語に変換されます。つまり、JVMはJavaのバイトコードを機械語に変更することで、Javaのプログラムとコンピュータの仲介役のような役割を果たします。
MacやWindowsなどハードウェアメーカーによって機械語に様々なタイプがあっても、JavaのプログラムはJVMとやりとりするだけなので、どんなコンピュータ相手にも同じプログラムを実行することができます。