Java 作為全球最流行的編程語言之一,憑藉「一次編寫,到處運行」的跨平台能力、完善的生態系統與持續演進的語言特性,長期佔據企業級開發主導地位。本文系統梳理 Java 核心特性、三大版本體系、版本演進史與現代發展趨勢,為初學者建立全景認知,為資深開發者提供知識地圖。
| 特性 | 核心內容 | 關鍵技術點 |
|---|---|---|
| 簡單性 | 語法接近 C/C++,去除指針、多繼承、操作符重載等複雜特性 | 引用替代指針、自動垃圾回收 (GC) |
| 面向對象 | 類、接口、繼承、多態、封裝;單繼承+多實現接口 | 動態綁定、instanceof、反射 |
| 分布式 | 內置網絡 API 支持 HTTP、Socket、RMI、微服務通訊 | java.net、URL、HttpClient、gRPC |
| 健壯性 | 強類型、異常處理、GC、無指針、編譯期+運行期雙重檢查 | try-catch-finally、斷言、JVM 驗證 |
| 安全性 | ClassLoader 隔離、字節碼驗證器、SecurityManager 權限控制 | 沙箱模型、簽名驗證、模塊系統 (JPMS) |
| 跨平台 | 源碼 → 字節碼 (.class) → JVM 解釋/編譯執行 | JVM 規範、JIT、AOT (GraalVM) |
| 解釋執行 | 字節碼由 JVM 解釋器逐條執行,類加載時動態鏈接 | 類加載器、雙親委派、熱替換 |
| 高性能 | JIT 即時編譯熱點代碼為機器碼,接近 C++ 速度 | 熱點檢測、逃逸分析、內聯優化 |
| 多線程 | 內置線程模型、synchronized、volatile、JUC 並發包 | Thread/Runnable、線程池、CAS、AQS |
| 動態性 | 類動態加載、運行時類型檢查 (RTTI)、反射、代理 | Class.forName、動態代理、Agent 技術 |
| 體系 | 全稱 | 定位 | 核心組件 |
|---|---|---|---|
| Java SE | Java Platform Standard Edition | 標準版,核心基礎,桌面/服務端通用 | JVM、核心類庫 (lang、util、io、net、time)、JDBC、JMX |
| Java EE | Java Platform Enterprise Edition | 企業版,分布式多層應用 (現 Jakarta EE) | Servlet、JPA、CDI、JAX-RS、JTA、JMS、Batch、Security |
| Java ME | Java Platform Micro Edition | 微型版,資源受限嵌入式/功能機 | CLDC、MIDP、精簡 JVM、專用 API |
2005 年 JavaOne 大會官方去除版本號中「2」:J2SE→Java SE, J2EE→Java EE, J2ME→Java ME。
| 年份 | 版本 | 里程碑事件 |
|---|---|---|
| 1995.05 | Java 1.0 | 語言誕生,Applet 爆發 |
| 1996.01 | JDK 1.0 | 首個正式發布版 |
| 1997.02 | JDK 1.1 | JIT 編譯器、內部類、JDBC、RMI |
| 1998.12 | JDK 1.2 (Java 2) | Collections、Swing、JSP/Servlet/EJB、三大體系劃分 |
| 2002.02 | JDK 1.4 | NIO、正則、日志、斷言、成熟穩定 |
| 2004.09 | JDK 5.0 (1.5) | 泛型、註解、枚舉、自動拆裝箱、foreach、靜態導入、JUC 並發包 |
| 2006.12 | Java SE 6 | 腳本引擎、Web Services、編譯器 API、性能大幅優化 |
| 2009.04 | — | Oracle 74 億美元收購 Sun |
| 2011.07 | Java SE 7 | try-with-resources、菱形語法、NIO.2、Fork/Join、invokedynamic |
| 2014.03 | Java SE 8 (LTS) | 里程碑:Lambda、Stream、Optional、新日期時間、Nashorn、默認方法、元註解、Metaspace 替換 PermGen |
| 2017.09 | Java SE 9 | 模塊系統 (JPMS)、JShell、私有接口方法、HTTP/2 Client、多版本 JAR |
| 2018.09 | Java SE 11 (LTS) | HTTP Client 標準化、Lambda var、Epsilon GC、飛行記錄器開源、單文件源碼運行 |
| 2021.09 | Java SE 17 (LTS) | 封裝類、密封類、模式匹配 instanceof、強封裝內部 API、macOS/AArch64、向量 API 預覽 |
| 2023.09 | Java SE 21 (LTS) | 虛擬線程 (正式)、結構化並發 (正式)、Record 模式 (正式)、字符串模板 (預覽)、未命名類/實例 main、ZGC 分代 |
基礎語法 → 集合框架 → 異常/IO/多線程 → JVM 內存模型/GC/類加載
→ 設計模式/SOLID → Spring 生態 (Core/MVC/Boot/Cloud) → 數據庫/SQL/ORM
→ 中間件 (Redis/Kafka/RocketMQ/ES) → 分布式理論 (CAP/BASE/一致性協議)
→ 容器化 (Docker/K8s) → 可觀測性 (Prometheus/Grafana/SkyWalking)
→ 性能調優 (JVM/GC/鎖/線程池/數據庫/網絡) → 架構設計 (DDD/CQRS/事件驅動)
Java 已走過 29 年,從瀏覽器 Applet 到雲原生主力,核心價值始終是「穩定、標準、生態、演進」。掌握核心特性、緊跟 LTS 版本、深耕生態工具鏈,是每位 Java 開發者的必修課。