Java 應(yīng)用程序的運(yùn)行機(jī)制
計(jì)算機(jī)高級語言的類型主要有編譯型和解釋型兩種,而 Java 語言是兩種類型的結(jié)合。
Java 首先利用文本編輯器編寫 Java 源程序,源文件的后綴名為.java;再利用編譯器
(javac)將源程序編譯成字節(jié)碼文件,字節(jié)碼文件的后綴名為.class; 最后利用虛擬機(jī)(解
釋器,java)解釋執(zhí)行。

?JVM 、JRE 和 和 JDK
JVM(Java Virtual Machine)就是一個(gè)虛擬的用于執(zhí)行 bytecode 字節(jié)碼的”虛擬計(jì)算機(jī)”。
它也定義了指令集、寄存器集、結(jié)構(gòu)棧、垃圾收集堆、內(nèi)存區(qū)域。JVM 負(fù)責(zé)將 Java 字節(jié)碼
解釋運(yùn)行,邊解釋邊運(yùn)行,這樣,速度就會受到一定的影響。
不同的操作系統(tǒng)有不同的虛擬機(jī)。Java 虛擬機(jī)機(jī)制屏蔽了底層運(yùn)行平臺的差別,實(shí)現(xiàn)
了“一次編寫,隨處運(yùn)行(Write once, run everywhere)”。 Java 虛擬機(jī)是實(shí)現(xiàn)跨平臺的核心機(jī)
制。

JRE (Java Runtime Environment)? 包含:Java 虛擬機(jī)、庫函數(shù)、運(yùn)行 Java 應(yīng)用程序所
必須的文件。
JDK (Java Development Kit) 包含:包含 JRE,以及增加編譯器和調(diào)試器等用于程序開
發(fā)的文件。
JDK、JRE 和 JVM 的關(guān)系如圖

老鳥建議
? 如果只是要運(yùn)行 Java 程序,只需要 JRE 就可以。JRE 通常非常小,其中包含了 JVM。
? 如果要開發(fā) Java 程序,就需要安裝 JDK。