Javaについて初めに出てきたよくわかんない用語

JavaSE(=JDK

Java Platform Standard Edition (Java Development Kit)の略。

Javaの開発を実行に関する必要なプログラムがすべてまとめられている。
この中にJREも含まれている。




JRE

Java Runtime Environmentの略。

Javaのプログラムを実行するために最低限必要なソフトをまとめたもの。




JavaEE

Java2 Platform Enterprise Editionの略。

JavaSEにサーバー関係のライブラリを追加したもの。ベースはJavaSE。


JavaSEもJavaEEAPIの集まり=ライブラリ
だから、public static void mainとか打っても動いてくれる。




JVM

Java Virtual Machine

Javaの仮装環境。 メイン環境(Linux, OSとか)の上にJVMが乗っかって動く感じ。 javaを実行した時には、
java -> コンパイラ -> JVM -> OS
の順で実行される。
JVMを挟むことによって、java側は何のOSかを気にすることなく済む。
これによってJavaは色々な環境で動く。(Write Once, Run Anywhere)




プログラムの実行形式

インタプリンタ型

実行するたびに、毎回ソースコードを読んで翻訳する。
同時通訳的な。


ソースコード → インタプリンタ → CPU
       実行


コンパイラ

実行前にソースコードを翻訳して、実行形式プロブラムを作成する。


ソースコード → コンパイラ → 実行形式プログラム → CPU
              コンパイル        実行


バイトコード

これがJavaのプログラム実行形式。
インタプリンタとコンパイラの両方の仕組みを取り入れたもの。
実行前にソースコードを翻訳(コンパイル)して、バイトコードプログラム(ソフト)を作成する。
実行時にランタイムがそれを機械語に翻訳する。


ソースコード → コンパイラ → バイトコード → ランタイム → CPU
              コンパイル     実行


javac ファイル名.javaコンパイルすると、classファイルができるのは、これがバイトコードファイルだから。