昨天我們成功寫出了第一個 Java 程式:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
但可能會有一個問題:
Java 到底是怎麼把這段程式跑起來的?
這時就會遇到三個很常看到的名詞:JDK、JRE、JVM
Java 有一個很有名的特色:
Write Once, Run Anywhere
寫一次,到處執行。
也就是說,同一份 Java 程式不需要為 Windows、macOS、Linux 各寫一份。
這背後的重要功臣,就是 JVM。
JVM 全名是:
Java Virtual Machine(Java 虛擬機器)
Java 程式不會直接變成電腦看得懂的機器碼,而是先編譯成一種叫做Bytecode(位元組碼)的 .class 檔案。
流程大概是:
HelloWorld.java
↓
編譯
↓
HelloWorld.class
↓
JVM
↓
執行程式
不同作業系統會有自己的 JVM,因此 Java 程式只要交給對應系統的 JVM,就可以執行。
JRE 全名是:
Java Runtime Environment(Java 執行環境)
它主要提供執行 Java 程式需要的環境。
可以簡單理解成:
JRE
└── JVM
如果只是要執行 Java 程式,需要的是執行環境。
JDK 全名是:
Java Development Kit(Java 開發工具包)
如果我們要自己寫 Java 程式,就需要 JDK。
JDK 裡面包含開發 Java 需要的工具,例如:
javac → 編譯 Java 程式
java → 執行 Java 程式
所以可以把三者簡單想成:
JDK:拿來開發 Java
JRE:拿來執行 Java
JVM:真正負責執行 Java Bytecode
如果覺得 JDK、JRE、JVM 很容易搞混,可以先記這句:
JDK 負責開發,JRE 提供執行環境,JVM 負責真正執行程式。
目前不需要把裡面的細節全部背起來,只要先知道它們各自在做什麼就可以了。
下一篇,我們就來看看 Java 程式最基本的結構,以及 public static void main 到底在寫什麼。