| 組件 | 角色 |
|---|---|
| Java 程式設計語言 | 語法規範,編寫 .java 原始碼 |
| Class 文件格式 | 跨平台二進制載體,JVM 執行單元 |
| Java API (標準類庫) | 系統資源存取抽象層(IO、Net、Memory...) |
| Java 虛擬機 (JVM) | 執行引擎,載入 Class、解釋/編譯位元碼 |
提供**安全、標準化**的系統資源存取介面。JVM 必須在特定平台上實現 API 語義(如檔案系統、執行緒、網路),確保上層程式碼不感知底層差異。
Java 方法 → 位元碼 → Class 文件
Native 方法 → C/C++/Assembly → 平台相關動態庫
透過 native 關鍵字聲明,JVM 載入並呼叫本地函數,實現高效能、平台特有功能或舊代碼復用。
Bootstrap ClassLoader (C++ 實現,載入 rt.jar 核心類)
↑
Extension ClassLoader (載入 jre/lib/ext/*.jar)
↑
Application ClassLoader (載入 classpath 應用類)
↑
自定義 ClassLoader (使用者擴展,打破雙親委派可實現熱部署、隔離)
理解 Java 四大組件分工、JVM 執行引擎演進、類載入機制,是進階 JVM 調優、排查 ClassNotFound/NoClassDefFoundError、設計插件化架構的必修基石。