首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

深入 Java 虛擬機(一):Java 體系架構與核心組件全景圖

     編輯:Java 綜合教學

Java 體系四大支柱

組件角色
Java 程式設計語言語法規範,編寫 .java 原始碼
Class 文件格式跨平台二進制載體,JVM 執行單元
Java API (標準類庫)系統資源存取抽象層(IO、Net、Memory...)
Java 虛擬機 (JVM)執行引擎,載入 Class、解釋/編譯位元碼

JVM 核心任務

  1. 類載入:Bootstrap / Extension / Application 三層 ClassLoader 雙親委派模型
  2. 位元碼執行:三種執行引擎
     • 解釋器:逐條解釋
     • JIT (Just-In-Time) 編譯器:熱點編譯為機器碼,緩存復用
     • 自適應優化器:監控熱點,僅編譯 10%-20% 關鍵程式碼,兼顧啟動速度與峰值效能

Class 文件特性

  • 平台無關:一次編譯,到處運行(需目標平台有 JVM)
  • 網路適應性:結構緊湊、動態連結、按需載入,適合網路傳輸

Java API 定位

提供**安全、標準化**的系統資源存取介面。JVM 必須在特定平台上實現 API 語義(如檔案系統、執行緒、網路),確保上層程式碼不感知底層差異。

Java 語言核心優勢

  1. 面向物件
  2. 多執行緒內建支援
  3. 結構化異常處理
  4. 自動垃圾回收 (GC)
  5. 動態連結
  6. 動態擴展 (反射、動態代理、ClassLoader)

本機介面 (JNI) 與主機交互

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、設計插件化架構的必修基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved