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

《Java 程序設計》第 1 週學習總結:JVM 跨平台原理、JDK/JRE/JVM 關係與環境搭建

     編輯:Java 相關知識

課程第一週核心知識點梳理:Java 跨平台機制、三大核心組件區別、運行流程、開發環境變量配置、主流 IDE 對比、Oracle JDK 與 OpenJDK 差異,適合入門學習者建立完整知識骨架。

1. 為什麼 Java 能跨平台?

Java 源碼 → 編譯器 → 字節碼 (.class) → JVM 解釋/即時編譯 → 機器碼運行。
  • 字節碼與平台無關,統一規範 (JVM Spec)。
  • 每個平台 (Windows/Linux/macOS) 提供對應的 JVM 實現,屏蔽底層差異。
  • 「一次編寫,到處運行」 (WORA) 的本質是 字節碼 + JVM 抽象層。

2. 執行 Java 程序的兩步驟

javac HelloWorld.java  # 編譯 → HelloWorld.class (字節碼)
java HelloWorld        # 運行 → JVM 加載類 → 執行 main 方法
  • javac:前端編譯器,語法檢查、生成字節碼。
  • java:啟動 JVM,類加載器加載 HelloWorld.class,查找 main 入口執行。

3. JDK / JRE / JVM 關係圖譜

+-------------------------- JDK (Java Development Kit) --------------------------+
|  +------------------------- JRE (Java Runtime Environment) ------------------+ |
|  |  +------------------- JVM (Java Virtual Machine) -----------------------+ | |
|  |  |  類加載器 | 執行引擎(解釋器+JIT) | 運行時數據區(堆/棧/方法區) | | | |
|  |  +---------------------------------------------------------------------+ | |
|  |  +------------------- 核心類庫 (rt.jar: lang/util/io/...) -------------+ | |
|  |  +---------------------------------------------------------------------+ | |
|  +--------------------------------------------------------------------------+ |
|  +------------------- 開發工具: javac, javadoc, jdb, jconsole, ... --------+ |
+------------------------------------------------------------------------------+
  • JVM:規範 + 實現 (HotSpot/OpenJ9/...) ,只負責運行字節碼。
  • JRE:JVM + 核心類庫,運行 Java 程序的最小環境。
  • JDK:JRE + 開發工具,開發者必裝。

4. java HelloWorld 命令中參數含義

  • HelloWorld:全限定類名 (不含 .class 後綴)。
  • JVM 會按包路徑查找 HelloWorld.class,加載並執行其 main 方法。
  • 若類在包中:java com.example.HelloWorld。

5. PATH 環境變量的作用

  • 將 JDK安裝目錄/bin 加入系統 PATH。
  • 使 javac、java、javadoc 等命令在任意目錄下可直接調用。
  • 未配置 PATH 時需輸入完整路徑 C:\JDK\bin\javac。

6. Java vs C/C++ 編譯運行產物對比

階段JavaC/C++
源碼.java.c/.cpp
編譯產物.class (字節碼,平台無關).obj/.o (目標文件,平台相關)
鏈接/運行JVM 解釋/ JIT 編譯 → 機器碼鏈接器 → .exe (Windows) / .out (Linux)
可移植性高 (字節碼統一)低 (需重新編譯)

7. 主流 Java 開發平台 (IDE)

  • Eclipse:免費開源、插件豐富、企業級應用主流。
  • IntelliJ IDEA:智能提示最強、商業版收費、社區版免費、近年份額第一。
  • NetBeans:Apache 項目、GUI 設計器優秀。
  • VS Code + Java Extension Pack:輕量、現代化、微服務/前端全棧友好。

8. Oracle JDK vs OpenJDK 差異 (重點)

維度Oracle JDKOpenJDK
授權協議OTN License (商業用途需付費)GPL v2 + Classpath Exception (免費商用)
構建來源OpenJDK + 商業特性 (Flight Recorder 等)社區開源構建
發布節奏LTS 長期支持 (8/11/17/21...)每 6 個月特性版,無官方 LTS
字體渲染商業字體引擎FreeType 開源替代
部署功能含 Java Web Start, Plugin, Control Panel無部署模組 (需額外安裝)
商標可用 Java 商標顯示 OpenJDK 版本字符串

生產選型建議:優先選擇 OpenJDK 構建版 (Adoptium/Temurin、Amazon Corretto、Azul Zulu),免費、長期支持、無商業授權風險。Oracle JDK 仅在必须使用商业特性(如 Java Flight Recorder 企業版功能)時考慮。

9. 本週心得與下週預習

  • ✅ 搭建 JDK 17 + IntelliJ IDEA 開發環境,跑通 HelloWorld。
  • ✅ 理解字節碼、JVM、跨平台本質,不再死記硬背。
  • ✅ 熟悉 javac/java 命令、CLASSPATH、模塊路徑基礎。
  • 📅 下週預習:變量、數據類型、運算符、控制流、數組、方法基礎。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved