ブラックボックスを撲滅したい

2017年1月よりフリーランスに転向したシステムエンジニアのブログ。プログラミングスクールではRubyの勉強をしていたが、現在はJavaによる開発がメイン。当ブログは筆者の学習メモを投稿していく予定。

【Java】JVMとは?

JVMとは?

Javaで書かれた処理を、OS(コンピュータ)に伝える橋渡しをするプログラムのことです。

JVMを使うことでどんなことができるか?

OSに依存せずにプログラムを実行できます。


これは、Javaの有名な標語である「Write Once, Run Anywhere」のことです。
「一度書けば、どこでも実行できる」というやつです。


プログラムを実行するには、Javaをコンピュータが理解できる機械語に変換してあげる必要があります。

この機械語への変換作業は、OSが異なれば結果が異なります。
同じソースコードから作られた機械語でも、WindowsMacで、この変換作業(コンパイル)の結果は異なります。
機械語は、そのコンピュータの環境に適したものじゃないと正常に動作しません。

しかし、JVMJavaで書かれたソースコードをプログラムの実行時にコンパイルすることで、
OSに依存せずに済むようになります。

つまり、理論上、OSごとにJVMをを用意すれば、
一度Javaでプログラムを組むだけで、
様々な環境(OS)で処理を実行できるようになります。

この実行時にソースコード機械語コンパイルする方式をインタプリンタ方式といいます。
Javaはこのインタプリンタ方式の1種である、実行時コンパイル方式をとっています。

実行時コンパイル方式とは、ソースコード中間コード(2進数のもの)で書かれたクラスファイルコンパイルした後、
実行時に機械語に変換する方式のことです。

ちなみに、JVMJava Virtual Machineの略です。

まとめ

JVMは、Javaで書かれた処理をコンピュータに命令してくれる橋渡し役となるプログラムのこと。
JVMがあるから様々な環境でJavaプログラムを動かすことができる。

参照
徹底攻略 Java SE 7/8 Bronze問題集