JDK
Java Development Kit 用作開發(fā), 包含了JRE, 編譯器和其他的工具(比如: JavaDoc,Java調(diào)試器), 可以讓開發(fā)者開發(fā)、編譯、執(zhí)行Java應(yīng)用程序.
JRE
Java 運(yùn)行時(shí)環(huán)境是將要執(zhí)行 Java 程序的 Java 虛擬機(jī), 可以想象成它是一個(gè)容器, JVM 是它的內(nèi)容.
JRE = JVM + Java Packages Classes(like util, math, lang, awt,swing etc)+runtime libraries.
JVM
Java virtual machine (Java 虛擬機(jī)) 是一個(gè)可以執(zhí)行 Java 編譯產(chǎn)生的 Java class 文件 (bytecode) 的虛擬機(jī)進(jìn)程, 是一個(gè)純的運(yùn)行環(huán)境.
JVM 不是平臺(tái)獨(dú)立的
Java被設(shè)計(jì)成允許應(yīng)用程序可以運(yùn)行在任意的平臺(tái), 而不需要程序員為每一個(gè)平臺(tái)單獨(dú)重寫或者是重新編譯. Java虛擬機(jī)讓這個(gè)變?yōu)榭赡? 因?yàn)樗赖讓佑布脚_(tái)的指令長(zhǎng)度和其他特性.