https://s3-us-west-2.amazonaws.com/secure.notion-static.com/45cc1fdb-059e-4c29-bfbf-ca7f2cd43d64/Untitled.png

JVM

在上圖中,Platforms 表示 Linux、Windows、MacOS 等各種作業系統平台,在這些平台上利用 JVM建立一個 Java 虛擬機器,讓 Java 可以跨平台。

Java 原始碼副檔名為 *.java,經過編譯器翻譯為副檔名 *.class 的位元碼。如果想要執行位元碼檔案,目標平台必須安裝專屬該平台的 JVM (Java Virtual Machine),JVM 會將位元碼翻譯為相依於平台的機器碼,讓 Java 程式可以達到「編譯一次,到處執行」的跨平台目的。

JVM 實際上如何與底層平台作溝通,則是 JVM 的事,JVM 實際上就相當於 Java 程式的作業系統,JVM 就負責了Java程式的各種資源管理。

JRE

Java 執行環境 (Java Runtime Environment, JRE) 包括了 :

只要使用 Java SE API 中的程式庫,在安裝有 JRE 的電腦上就可以直接運行,無需額外在你的程式中再包裝標準函式庫,而可以由 JRE 直接提供。

在上圖中右邊可以看到 Java SE API,涵蓋了各式常用的程式庫,像是通用的群集 (Collection)、輸入輸出、連線資料庫的 JDBC、撰寫視窗程式的 AWT 與 Swing 等,這些都是在各個 JSR 標準文件規範之中。

例如以下 Java 程式 :

System.out.println("Hello World");

Java 是個標準,System、out、println 這些名稱,都是標準中所規範的名稱,實際上必須要有人根據標準撰寫出 System.java,編譯為 System.class,如此你才能在撰寫第一個 Java 程式時,使用 System 類別 (Class) 上 out 物件 (Object) 的 println() 方法 (Method)。

JDK

Java 開發者套件 (Java Development Kit, JDK) 是針對 Java 開發人員發布的免費軟體開發套件 (Software development kit, SDK)。從 Java 推出以來,JDK 已經成為使用最廣泛的 Java SDK,JDK 包括了 :