Java 雙重身份:技術體系與編程語言
- 技術體系視角:對標 Microsoft .NET,涵蓋語言、虛擬機、類庫、工具鏈、規範標準的完整生態
- 編程語言視角:對標 C#,1995 年 Sun 發布,特性:簡單、面向對象、安全、平台無關、「一次編譯,到處運行」
2009 年 Oracle 收購 Sun,Java 納入「數據庫+中間件+操作系統」鐵三角生態,與微軟 .NET/SQL Server/Windows 形成雙巨頭對峙。
Java 學習路徑導航
graph TD
A[JavaSE 基礎] --> B{職業方向選擇}
B -->|企業級開發| C[JavaEE/Web 後端]
B -->|移動開發| D[Android/Kotlin]
B -->|嵌入式/物聯網| E[JavaME/Embedded]
B -->|大數據/AI| F[Scala/Spark/Flink]
C --> G[Spring生態/微服務/雲原生]
D --> H[Jetpack Compose/跨平台]
核心建議:扎實掌握 JavaSE 是所有方向的基石,切勿急於求成跳過基礎。
Java 三大技術架構平台演進
| 舊稱 (Java 5 前) | 新稱 (Java 5+) | 定位 | 核心技術 | 典型應用 |
| J2SE | Java SE | 標準版/桌面基礎 | 核心語法、集合、IO、多線程、JVM | 桌面應用、工具開發、基礎庫 |
| J2EE | Java EE → Jakarta EE | 企業版/服務端 | Servlet/JSP、EJB、JPA、CDI、WebSocket | 電商、銀行、ERP、微服務 |
| J2ME | Java ME | 微型版/嵌入式 | CLDC/MIDP、嵌入式 JVM | 功能機、智能卡、早期物聯網 |
歷史注記:Java EE 8 後移交 Eclipse 基金會,更名 Jakarta EE,包命名空間從 javax.* 遷移至 jakarta.*。
JVM:跨平台基石與進階特性
- 核心使命:屏蔽 OS/硬件差異,提供統一運行時抽象
- 進階能力:
- 自動內存管理(GC:G1/ZGC/Shenandoah)
- 類加載機制(雙親委派、熱部署、模組化)
- 安全沙箱(字節碼驗證、權限控制、模組封裝)
- JIT 編譯優化(逃逸分析、內聯、向量化)
- 監控診斷(JFR、JMX、HSDB、Arthras)
現代 Java 生態關鍵詞
- 模組化:JPMS (Java 9+),
module-info.java 封裝邊界
- 響應式:Reactive Streams、WebFlux、Virtual Threads (Java 21)
- 雲原生:GraalVM Native Image、Spring Native、Quarkus、Micronaut
- 多語言互操作:Truffle 框架、GraalVM Polyglot (JS/Python/R/WASM)
給初學者的建議
- 先精通 JavaSE 核心:集合框架、并發包、IO/NIO、JVM 內存模型
- 建立「標準規範」思維:閱讀 JSR/JEP、Javadoc 源碼、官方教程
- 工具鏈掌握:Maven/Gradle、Git、IDE 進階、Docker、CI/CD
- 避免「框架應用層」漂移:理解 Spring 原理而非僅會配置