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

零基礎學 Java(一):Java 語言運行機制與執行流程全景圖

     編輯:Java 綜合教學

Java 程式從原始碼到執行的完整鏈路

Java 編譯與執行流程圖

階段一:編譯期

  1. 原始碼 .java → 編譯器 javac
  2. 詞法分析 → 語法分析 → 語義分析 → 註解處理
  3. 生成位元組碼 .class(與平台無關的中間表示)

階段二:類載入期

JVM 類載入器子系統:

  1. 載入:讀取 .class 二進制流 → 方法區生成 java.lang.Class 對象
  2. 連接:
    • 驗證:文件格式、元數據、位元組碼、符號引用
    • 準備:靜態變數分配記憶體、賦預設值
    • 解析:符號引用 → 直接引用
  3. 初始化:執行 <clinit>() (靜態塊/靜態變數賦值)

雙親委派模型:Bootstrap → Extension → Application → Custom,保護核心類庫不被竄改。

階段三:運行期

記憶體區域

區域線程私有核心內容
程式計數器是當前執行位元組碼行號
虛擬機棧是棧幀(局部變數表、操作數棧、動態連結、返回地址)
本地方法棧是Native 方法調用
堆否對象實例、數組、GC 主戰場
方法區否類元數據、常量、靜態變數、JIT 編譯代碼

執行引擎

  • 解釋器:逐行解釋執行位元組碼
  • JIT 編譯器:熱點代碼編譯為機器碼,直接執行
  • 垃圾回收器:自動管理堆內存

關鍵特性

  • 一次編譯,到處運行:位元組碼屏蔽平台差異
  • 自動內存管理:GC 釋放開發者負擔
  • 安全性:類載入驗證、安全管理器、沙箱機制
  • 高效能:JIT + 逃逸分析 + 鎖消除/粗化 + 內聯

常見誤區

「Java 是解釋型語言」→ 現代 JVM 混合模式:解釋啟動 + JIT 熱點編譯,效能接近 C++。

「Java 沒有指標」→ 有引用,本質是安全指標,不支援指標運算。

下一章預告

《零基礎學 Java(二):資料類型、變數與運算符》—— 奠定寫代碼的語法基石。

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