MENU
なお
じゃぱざむ運営主
20歳 | WEBメディアの会社で部長をやりながら、じゃぱざむ・特化メディア・WEB制作~コンサル・SEOディレクター・投資・就活相談など幅広くやっています。
いまい
エンジニア志望の大学生
21歳 | 理系の大学3年生|Webアプリ開発を勉強中。クラウド系の自社開発企業(マザーズ上場企業)に内定。じゃぱざむでは、IT系記事の執筆とアイキャッチ画像の作成をしています。
【完全ガイド】大学生でもプログラミングで稼ぎ始めるためのロードマップ

JVMとは?Javaの実行環境の仕組みを図でわかりやすく解説!

プログラミングスクール人気ランキング

DMM WEBCAMP

超大手の繋がりを活かした求人

実務で必須のチーム開発あり

最大56万円の補助金制度

RaiseTech

現場の使える技術を学ぶ

月70万以上を稼ぐ現役講師

学割あり

TechCamp

30代以上の支持率高め

教科書・サポートの質が高い

最短10週間でエンジニア転職

いまいのアイコン画像いまい
こんにちは!
今井(@ima_maru)です。

JavaJVM言語と呼ばれるプログラミング言語が動作するためには、
この「JVM」「Java仮想マシン」が必要不可欠です。

Java仮想マシンは簡単に言えば、JavaやJVM言語を動かすためのソフトウェアみたいなものです。

そしてメリットは、書いたプログラムがOSに依存しないこと。

言い換えれば、どんなOS(Windows,Linux,Macなど)でも正常に機能することと言えます。

今回はこのJVM(Java仮想マシン)の仕組みをわかりやすく解説していきます。

この記事に書かれていること
  • JVM-Java仮想マシンとは?
  • Javaの実行環境はどういう仕組み?
  • JVMの仕組みのメリットは?

それでは解説していきます!

タップして好きなところから読めます

JVM-Java仮想マシンとは?

JVMとは、「Java Virtual Machine」の頭文字をとった単語です。

日本語に訳して「Java仮想マシン」と言ったりもします。

マシンとは言いますが、「仮想」マシンなので、実際にそういう機械・ハードウェアがあるわけではありません

PC上にインストールされているソフトウェアのことを指しています。

皆さんがお使いのPCにも入っているのではないでしょうか?

上が実行環境、下が開発環境なのですが、上の実行環境の中に、JVMが入っています

Javaで生成されたコードは、一度この実行環境のJVMでもう一度変換され機械語になります。

その辺の説明をしていきます。

Javaの実行環境の仕組み:JVMはどのように働く?

まず、プログラミング言語Javaでプログラムを書きます。

これを「ソースコード」と呼ぶことにしましょう。

次は、そのソースコードをJavaのコンパイラを通して、「バイトコード」と呼ばれる中間コードに変換します。

このバイトコードはそのまま実行することはできません。(まだ完全に機械語になっていない)

そして、このバイトコードは、JVMによってそれぞれのOSにあった機械語に翻訳されます。

つまり、JVMがOSの違いを吸収するクッション材となってくれているのです。

このように、Javaの実行環境は、間にJVMが挟まっているという点で特徴的です。

いまいのアイコン画像いまい
ほかのプログラミング言語の多くは、コンパイラやインタプリタが直接機械語に翻訳するので違いがありますね。

Javaの実行環境は、JVMがOSの違いを吸収してくれので、JVMがそのOSに対応していれば、プログラムを正常に動作させることができるのです。

ようは、

  • WindowsにはWindows用のJVM
  • macにはmax用のJVM
  • LinuxにはLinux用のJVM

がインストールされていれば、どのOSでも正常にプログラムが機能するのです。

JVMの仕組みのメリットとデメリット

Javaは、実行環境が特徴的で、中間コードをJVMが再度変換するということを行います。

また、JVMがそれぞれのOSに合うような機械語に翻訳してくれるので、

「一つのプログラムがOSに依存せずに動作する」

という特徴を持っています。

マルチプラットフォーム:OSに依存せずに動作する

JVMの仕組みのおかげで、JavaのプログラムはOSに依存しないというメリットがあります。

これが一番大きなメリットといえるでしょう。

「OSに依存しない」というのは、
WindowsでもMac OSでもLinuxでも動作するということです。

この特徴のことを、

「マルチプラットフォーム」
クロスプラットフォーム」

と呼んだりもします。

つまり、いろんなプラットフォーム(OSなどの環境)に対応しているという意味ですね。

では、なぜOSに依存せずに動作するのでしょうか?

それは、同じJavaプログラムから生成された中間コードでも、JVMがOSに合わせて出力コードを変えるからなんです。

例えば、WindowsさんmacさんLinuxさん
「今から100万円を稼いできてください」と命令したとしましょう。

そうすると、

  • Windowsさんは、アルバイトをして100万円を稼ぐ
  • macさんは、ネットビジネスで100万円を稼ぐ
  • Linuxさんは、宝くじを当てて100万円を稼ぐ

こうなるかもしれません。

それぞれが「100万円を稼ぐ」という命令を「自分ができる行動」に変換したのです。

これをJVMの話に戻すと、

System.out.prinln("Hello, World!!")

というJavaプログラムが生成した中間コードに対して、

  • Windows用のJVMは、WindowsOSが実行できるような機械語に変換
  • mac用のJVMは、macOSが実行できるような機械語に変換
  • Linux用のJVMは、LinuxOSが実行できるような機械語に変換

という風にJVMがそれぞれのOSに適した機械語を出力しているのです。

このことからわかるように、Javaの開発環境はOSを考えてプログラミングすることが少なくなるようにできています。

実行速度が若干遅い、メモリを使う

C,C++などの完全なコンパイラ型の言語に比べると実行速度やメモリの面で性能が劣ります

しかし、処理速度の面でもメモリの面でも現代のコンピュータは進化を遂げていて、いまでは気にならないほどになりました

よほどの実行速度や省メモリ化を目指す開発でない限り、この面は気にする必要はないでしょう。

あわせて読みたい
コンパイラとインタプリタの違いは?言語の違いを分かりやすく解説!
コンパイラとインタプリタの違いは?言語の違いを分かりやすく解説!「コンパイラ」と「インタプリタ」とは何かを知りたい方!コンパイラ言語とインタプリタ言語とは何かを知りたい方!それぞれの言語の特徴やメリット・デメリットを知り...

JVM言語とは?

JVM環境は、Javaのために作られた環境ですが、そのJVM環境を利用できるプログラミング言語が多数存在しています。

それらのことをJVM言語といいます。

つまり、JVM言語とは、JVM環境で動くプログラミング言語になります。

Javaが生み出すような中間コードを生成できるわけですね。

現在Android開発で大注目されているプログラミング言語「Kotlin」などがJVM言語として有名です。

Java

「java ロゴ」の画像検索結果

もちろんのことJavaもJVMで動作するためJVM言語といえます。

ですが、JVMが作られたのはJavaのためなのでちょっと違うかもしれません。

ここではJVMで動作するという点で上げておきます。

Scala

「Scala ロゴ」の画像検索結果

オブジェクト指向と関数型プログラミングを統合したプログラミング言語です。

JVM言語のひとつです。

Kotlin

「kotlin ロゴ」の画像検索結果

2011年にAndroidの公式言語としてGoogleが発表したプログラミング言語です。

主にAndroidアプリを開発するときに使用されます。

Groovy

「Groovy JVM」の画像検索結果

Groovy(グルービー)は、JVM上で動作する動的プログラミング言語です。

Jython

PythonのJVM版です。JVM環境で使えるようにしたよって。

JRuby

RubyのJVM版です。

ほかにもいろいろあります。

さらに詳しく言語について知りたい方へ

あわせて読みたい
【2020年最新】プログラミング言語の人気ランキングTOP10!
【2020年最新】プログラミング言語の人気ランキングTOP10!プログラミング言語の人気ランキングを知りたい方!人気なプログラミング言語の「特徴」を知りたい方!どのプログラミング言語を学ぼうか迷っている方!今回は、プログ...
あわせて読みたい
【2020年10月最新】将来性が高いプログラミング言語TOP5はこれだ!
【2020年10月最新】将来性が高いプログラミング言語TOP5はこれだ!将来性の高いプログラミング言語を知りたい方!おすすめのプログラミングスクールを知りたい方!今回は、「プログラミング言語の将来性」をテーマに記事を書いていきま...

以上、「JVMとは?Javaの実行環境の仕組みを図でわかりやすく解説!」でした。

いまいのアイコン画像いまい
最後までお読みいただきありがとうございました。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
タップして好きなところから読めます
閉じる