Javaプラットフォーム
Javaプラットフォームの本質はJavaバイトコードを実行する「仮想機械 (virtual machine)」の発想である。Javaバイトコードは実行プログラムの下にどんなハードウェアやOSがあろうと全く同じである。JITコンパイラはJava仮想マシン (Java virtual machine) で動く。JITコンパイラは実行時にJavaバイトコードをネイティブなプロセッサ命令に翻訳し、プログラム実行中にメモリ上にネィティブコードをキャッシュする。
中間言語としてのバイトコードの使用は、バーチャルマシンが存在する様々なプラットフォーム上でJavaプログラムが走ることを可能にする。JITコンパイラの使用はローディングによる僅かな遅延と、それらが一度にほとんどまたは全てJITコンパイルされ、一度「ウォームアップ」した後で、Javaアプリケーションがネイティブなプログラムと同じくらいの速さで走る傾向があることを意味する。
JREバージョン1.1以来、サンのJava VM実装はインタプリタだけでなく、JITコンパイラも含んでいる。
Javaのプログラムは、オペレーティングシステム (OS) やハードウェアに依存しないバイトコード(中間言語)と呼ばれる抽象的なコードで表現されている。そのため、Javaプログラムの実行に必要な仮想マシン (virtual machine) や、開発に必要な標準ライブラリセットおよびコンパイラを個々の環境にあわせて作りさえすれば、Javaプログラムはそれら全ての環境で同一に動く。Javaプラットフォームとはこうした実行環境および開発環境のことである。
Javaプラットフォームは、Java、Javaアプレット、Java Runtime Environment、JVM、携帯電話や組み込み機器対応Java (Java ME)、Java Web Start、Java製アプリケーションなども含めてまとめて単純に「Java」と呼ばれることがある。
Javaプラットフォームにはいくつかのエディションがあり、PCのスタンドアロンアプリケーションや他のエディションの基礎となるJava Standard Edition (Java SE)、WebアプリケーションやWebサービスなど、サーバーサイド用のJakarta EE、スマートフォンのような携帯端末向けJava Micro Edition (Java ME) が存在する。