Java 是一門為了網路環境而開發的語言,採取將程式編譯成 bytecode,再根據不同平台的虛擬機器,轉成各環境可以執行的語言,實現多平台執行的平台獨立性。
// Country.java
class Country {
void say(){
System.out.println("aaa");
}
public static void main(String[] args) {
Planet korea = new Country();
korea.say();
}
}
當輸入 javac Country.java
、java Country
編譯、執行兩段指令,系統會運行 Java 並給予 Country 這個類別,虛擬環境會根據 bytecode(字節碼)執行代碼(會將bytecode轉換為操作系統可理解的機器指令)。
其中的核心概念有:
- JVM (Java Virtual Machine)
JVM 如同字面是一個虛擬機器,之所以稱為虛擬,是因為它提供一個不依賴於底層操作系統和機器硬件的接口。
當執行程式時,會由 JVM 將 bytecode 轉換為機器可理解指令,是 Java 語言的核心,也提供內存管理、垃圾收集、安全性等功能 - JRE (Java Runtime Environment) = JVM + Libraries + Other Components
JRE 是執行 Java 程式的平台,由 JVM、Java 二進制文件和其他類別所組成,不含開發工具,包含編譯器、除錯工具、JShell,只能執行程式。 - JDK (Java Develop Kit) = JRE + Compilers + Debuggers
JDK 包含 Java 開發的套件,會根據平台而有所不同,包含 javac(編譯器)、java(執行 .class 的工具)、jar(打包工具)等開發、除錯工具和核心 JRE