2分SHAREツイートシェアはてブLINEPocket今井こんにちは。今井(@ima_maru)です。JavaやJVM言語が動作するためにはこのJVM-Java仮想マシンが必要不可欠です。Java仮想マシンとは簡単に言ってしまえば、JavaやJVM言語を動かすためのソフトウェアみたいなものです。メリットは、書いたプログラムがOSに依存しないこと。言い換えれば、どんなOS(windows,Linux,Macなど)でも正常に機能することと言えます。今回はこのJVM(Java仮想マシン)の仕組みをわかりやすく解説していきます。「"100%流れが来ている職業"に、ほぼ"100%転職できる"としたら、あなたは悩みますか?それとも今すぐ行動しますか?」なおホリエモンも認めたプログラミングスクールで稼げる人材になろう!\稼げる人材になることに特化!/"転職成功率99%"のTECH::EXPERTはこちら※14日間の全額返金保証付き好きなところから読むJVM-Java仮想マシンとは?【図解】JVM-Java仮想マシンの仕組みメリットとデメリットOSに依存せずに動作する実行速度が遅い、メモリを使う人気のJVM言語JavaScalaKotlinGroovyJythonJRubyさらに詳しく言語について知りたい方へJVM-Java仮想マシンとは?私はJVM(ジェーブイエム)やJava仮想マシンと呼ぶことが多いですが、ほかにも呼び方があります。Machine」ジャババーチャルマシン。これを直訳すればJava仮想マシンですし頭文字をとればJVMとなります。VMと呼んだりする人もいますね。【図解】JVM-Java仮想マシンの仕組みJava仮想マシンとは、プログラミング言語Javaあるいは、JVM言語と呼ばれるプログラミング言語から作られるプログラム(ソースコード)をそれぞれのOSに合う形で実行する仮想マシンです。仮想マシンとはソフトウェアみたいな意味です。ようは、それぞれのwindowsやらMacやらにこの仮想マシンがインストールされていれば、正常にプログラムが機能するということです。ほかのプログラミング言語だと、それぞれのOSにあったプログラムを書かないといけないことがあります。その点Java含めJVM言語は、「JVMがそれぞれのOSで正常に機能するようなクッション材の働きをし、一つのコードでいろんなOSに対応できる」のです。中間コード(バイトコード)Java仮想マシン中間コード(バイトコード)↓それぞれのOSにあった機械語に翻訳ネイティブコードまず、中間コードに翻訳するまでは、どのOSに向けてでも同じ仕様になっています。中間コード自体は同じということです。このままだと実行することはできないので、それぞれのOSにあった機械語に翻訳しないといけません。ここでOSに対応させます。Java仮想マシンはこの「それぞれのOSにあった機械語に翻訳」という作業を行ってくれています。「"100%流れが来ている職業"に、ほぼ"100%転職できる"としたら、あなたは悩みますか?それとも今すぐ行動しますか?」なおホリエモンも認めたプログラミングスクールで稼げる人材になろう!\稼げる人材になることに特化!/"転職成功率99%"のTECH::EXPERTはこちら※14日間の全額返金保証付きメリットとデメリットOSに依存せずに動作するこれが一番大きなメリットといえるでしょう。OSでもLinuxでも動作するということです。マルチプラットフォーム(クロスプラットフォーム)ともよばれる特徴です。これは、一回中間コードに訳されたときにJVMがそれぞれのOSに合った機械語に翻訳してくれているためです。Java仮想マシン中間コード(バイトコード)↓それぞれのOSにあった機械語に翻訳ネイティブコードソースコードを中間コードに翻訳するのはOSを考えずに行います。あとは、それぞれのOSに合う機械語にJava仮想マシンが翻訳してくれます。プログラムをほかのOSに移植するとき、JVM言語ならばソースコードを書き直す必要がありません。JVMが入っている環境であればいいのです。実行速度が遅い、メモリを使うC,C++などのコンパイラ型の言語に比べると実行速度やメモリの面で性能が劣ります。インタプリタ型言語という関係が妥当なのですが、今やPythonやRubyなどのインタプリタ言語は当然のように使われています。それは、処理速度の面でもメモリの面でも現代のコンピュータは進化を遂げていて、いまでは気にならないほどになったからです。インタプリタより速いJVM言語が使われているのはうなづけますね。コンパイラとインタプリタの違いは?言語の違いを分かりやすく解説!ただ、気にならないほどですが劣っているというのは事実です。少なからずデメリットとして書いておきます。人気のJVM言語JavaもちろんのことJavaもJVMで動作するためJVM言語といえます。JVMが作られたのはJavaのためなのでちょっと違うかもしれません。ここではJVMで動作するという点で上げておきます。Scalaオブジェクト指向と関数型プログラミングを統合したプログラミング言語です。JVM言語のひとつです。Kotlin2011年にAndroidの公式言語としてGoogleが発表したプログラミング言語です。Androidアプリを開発するときに使用されます。GroovyGroovy(グルービー)は、JVM上で動作する動的プログラミング言語です。JythonPythonのJava版です。JVMで使えるようにしたよって。JRubyRubyのJava版です。ほかにもいろいろあります。「"100%流れが来ている職業"に、ほぼ"100%転職できる"としたら、あなたは悩みますか?それとも今すぐ行動しますか?」なおホリエモンも認めたプログラミングスクールで稼げる人材になろう!\稼げる人材になることに特化!/"転職成功率99%"のTECH::EXPERTはこちら※14日間の全額返金保証付きさらに詳しく言語について知りたい方へこちらの記事人気のプログラミング言語について書いています。【2020年】将来性のあるプログラミング言語ランキングTOP3はこれだ!以上、「【図解】JVM-Java仮想マシンとは?仕組みをわかりやすく解説」でした。最後までお読みいただきありがとうございました。コメントをキャンセルメールアドレスが公開されることはありません。週1でブログ書いてます。