TL;DR
プログラミング言語であり、同時にプラットフォームでもある技術である。ソースコードはバイトコードにコンパイルされ、Java 仮想マシン(JVM)の上で動く。
なぜ必要か
JVM は多くの OS で動くので、同じ .class ファイルを Windows、Linux、macOS などでそのまま実行できる。JVM の上では、Kotlin、Clojure、Scala のような Java 以外の言語も動く。
仕組み
ソースコードは拡張子 .java のテキストファイルに書き、javac コンパイラで .class ファイルにコンパイルする。.class ファイルには、CPU 固有のコードではなく、JVM の機械語であるバイトコードが入っている。java ランチャーが JVM のインスタンスを起動して、アプリケーションを実行する。
Java プラットフォームは、JVM と Java API(Java Application Programming Interface)の 2 つから成る。
例
Main.java をコンパイルして実行する場合は、次のようになる。
javac Main.java
java Main