Java學習入門--(1)JDK、JRE、JVM三者間的關係
學習JAVA前必須瞭解Java跨平臺特性,Java 為什麼能跨平臺,實現一次編寫,多處執行?
Java 能夠跨平臺執行的核心在於 JVM(Java虛擬機器) 。不是 Java 能夠跨平臺,而是它的 jvm 能夠跨平臺執行。我們知道,不同的作業系統向上的 API 肯定是不同的,那麼如果我們想要寫一段程式碼呼叫系統的聲音裝置,就需要針對不同系統的 API 寫出不同的程式碼來完成動作。而 Java 引入了位元組碼的概念,jvm 只能認識位元組碼,並將它們解釋到系統的 API 呼叫。針對不同的系統有不同的 jvm 實現,有 Linux 版本的 jvm 實現,也有 Windows 版本的 jvm 實現,但是同一段程式碼在編譯後的位元組碼是一樣的。引用上面的例子,在 Java API 層面,我們呼叫系統聲音裝置的程式碼是唯一的,和系統無關,編譯生成的位元組碼也是唯一的。但是同一段位元組碼,在不同的 jvm 實現上會對映到不同系統的 API 呼叫,從而實現程式碼的不加修改即可跨平臺執行。
JDK(Java Development Kit)是針對Java開發員的產品,是整個Java的核心,包括了Java執行環境JRE、Java工具(例如:javac.exe,java.exe,jar.exe 等)和Java基礎類庫。Java Runtime Environment(JRE)是執行JAVA程式所必須的環境的集合,包含JVM標準實現及Java核心類庫。JVM是Java Virtual Machine(Java虛擬機器)的縮寫,是整個java實現跨平臺的最核心的部分,能夠執行以Java語言寫的軟體程式,它只認識.class型別檔案,能夠將class檔案中的位元組碼指令進行識別並呼叫作業系統對應的API完成相應的動作。