Java

JVMって何?これからJavaを始める人でも分かるように解説します!

Javaを学習していると耳にすることがあるのがJVM。そんなJVMですが、Javaを始めたばかりでは「よく分からない」と思っている人も多いのではないでしょうか。

この記事では、Javaに触れたことがない人でも分かりやすいようにJVMとは何かを解説していくので、JVMがよく分からないと感じる人はぜひ参考にしてくださいね。

JVMって何?

最初にJVMとは何かについて解説していきます。
JVMがどのようなものであるかを最初に把握しておけば今後の学習がスムーズになるので、ぜひ確認してみてくださいね。

JVMとは

JVMは「Java Visual Machine」の略でJavaで作成されたプログラムをWindowsやMacOS、Linuxのコンピュータで実行するために必要なソフトウェアになります。

JVMは別名Java仮想マシンと呼ばれることもあります。
仮想マシンと呼ばれるように、実際の機器があるわけではなく、各パソコンにインストールすることで利用可能です。

JVMは後述するJREの中にあり、機能を追加するAPIとセットになっています。

Javaコード実行の流れとJVMの役割・仕組み

ここからJVMの役割と仕組みについて解説していきます。

JVMの役割を解説する前にJavaで記述したソースコードが実行される流れを確認しておくので、どのようにしてJVMが動作するのかを確認しておいてください。

プログラムがどのように実行されるのかを確認しておくことで、他のツールとの違いが分かりやすくなります。プログラミング学習を始めたばかりの方はぜひソフトの動きをチェックしておいてくださいね。

JVMが動作するフロー

Javaのソースコードを実行する際に行われるJVMの動きは、以下の通りです。

①Javaソースコードをコンパイルする

最初にJavaのソースコードをコンパイルします。Javaのソースコードは「.java」の拡張子を持ったファイルになります。

この「.java」のソースコードをコンパイルすると拡張子が「.class」のバイトコードが作成されます。

バイトコードはそのまま実行できないので、JVMで各OSに合うように変換する必要があります。

②バイトコードをJVMで各OS毎に変換して実行する

バイトコードをJVMで変換してプログラミングを実行します。

バイトコードは機種やOSに依存しないため、Windows、MacOS、Linuxに対応するJVMをあらかじめインストールしておくだけで、Javaのソースコードを実行できます。

JVMの役割・仕組み

先ほどのJavaのソースコードを実行する際に行われるJVMの動きで確認した通り、JVMはバイトコードを各OSに合うように変換する役割を持っています。

いわばJVMは変換器になりますね。そのままでは実行できないファイルを、実行できるファイルに書き換える働きをしているのです。

JDK・JREとの違いは何?

よくJVMと間違いやすいのがJDKとJREです。
どちらも同じような名前で似たような機能が組み込まれているので、分かりにくいと思うのも無理はありません。

そこで、JDKとJREについても解説するので、違いが分かりにくいと思っている方はぜひ参考にしてくださいね。

JDKとは

JDKは「Java Development Kit」の略で、Javaで開発・実行するための総合的なプログラムを指します。

JDKの中にはソースコードをコンパイルをするためのプログラムや記述したコードをデバッグするためのプログラムなどが含まれています。

Javaのプログラミングを始めるにあたって必要なプログラムセットがJDKと言えますね。

JREとは

JREとは「Java Runtime Environment」の略でJavaで作られたプログラムを実行するために必要なソフトウェアを指します。

別名でJavaランタイムやJava実行環境と呼ばれることもあるので注意してください。

以前はJRE単体でインストールできましたが、現在JREを利用するにはJDKをインストールする必要があるので、注意が必要です。

JDK・JREとの違いは?

ここまで解説した通り、JREはJDKに含まれており、JVMはJREに含まれています。

JDKはJavaのプログラム開発・実行を行うためのツールキット、JREはプログラムを実行するための総合的なソフト、JVMはそのソフトの一部でバイトコードをOSごとに変換する役割を持ったプログラムになります。

まとめ

JVMはJavaで書かれたプログラムを変換する役割を持っていることを解説しました。

似たような言葉で、総合開発キットを意味するJDK、プログラム実行のために必要なJREもあるので、プログラミング学習を進める段階で分からなくなったら、この記事を見直してみてくださいね。

プログラミングの家庭教師『Tech Teacher』


引用元:Tech Teacher

「スクールに通い続ける自信がない…」
「時間がなくてスクールに通えない…」

そんな方にはプログラミングの家庭教師『Tech Teacher』がおすすめです。
Tech Teacherはマンツーマン指導なので、生徒様一人ひとりに最適な指導を行うことができます。また、オンライン指導も可能なので、全国どこにいても家庭教師の授業を受けることができます。

Tech Teacherの3つの特徴


生徒様に最適化されたマンツーマン指導
完全マンツーマンの指導なので、生徒様の目的・学習状況・ご要望に合わせて、最適な指導をご提供いたします。

指導力・人柄・相性の優れた教師のご紹介
Tech Teacherには採用率20%の選考を突破した、指導力の高い教師が在籍しています。また、選考では指導力だけではなく人柄も重視しております。

1,000人の教師が在籍!幅広い指導に対応可能
業界トップレベルの1,000人の教師が在籍しています。そのため、幅広い言語・ツール・目的に対応することができます。

家庭教師ならではの5つの魅力


オーダーメイドのカリキュラム
生徒様一人ひとりに習熟度・目的・期間に応じて最適なカリキュラムを提供いたします。

きめ細やかなフォローが可能
生徒様からのご要望にきめ細やかに対応し、学習計画や勉強法などの指導もできるので、普段の勉強も捗ります。

習い事・学業・お仕事との両立が簡単
教室に通う必要がないので親御様の送迎も不要です。授業時間・頻度を生徒様のご都合に合わせて自由に調節することができます。

自分のペースで進められる
生徒様の理解度や意欲に応じて授業のスピードを調節できます。不明点や疑問点は都度立ち止まって解消できるので、着実に理解して進むことができます。

すぐ質問できるから挫折しない
先生を独り占めできるので、周りの目を気にすることなく分からないところをいつでも質問できます。

Tech Teacherへのお問い合わせ

無料体験授業・資料請求のお問い合わせはこちらから

質問のみのお問い合わせも受け付けております。