Java 平台分為三個版本,面向不同應用場景,共享核心語言與 JVM 技術棧。理解三者定位與關係,是技術選型與職涯規劃的基礎。
🖥️ Java SE(Standard Edition)—— 基石與通用平台
- 前身:J2SE → Java SE 5.0 (Tiger) → Java SE 6 (Mustang) → Java SE 7 (Dolphin) → Java SE 8 (LTS) → Java 9/10/11 (LTS)/17 (LTS)/21 (LTS)...
- 核心價值:提供 JVM、核心類庫、編譯器、調試工具,支援桌面、服務端、嵌入式、實時環境應用開發部署。
- 關鍵特性演進:
- Java 5:泛型、註解、枚舉、自動裝箱、併發包
- Java 7:Try-with-resources、NIO.2、InvokeDynamic
- Java 8:Lambda、Stream、Optional、新日期時間、默認方法、Nashorn
- Java 9:模組系統、JShell、HTTP/2 客戶端、私有接口方法
- Java 11/17/21 LTS:長期支援版本,企業級生產首選
- 學習資源:《馴服 Tiger》(Java 5),《Merlin 魔力》(J2SE 1.4),《Java SE 6 新特性系列》等專欄深度解析。
🏢 Java EE(Enterprise Edition)—— 企業級分佈式標準
- 前身:J2EE → Java EE 5/6/7/8 → Jakarta EE 8/9/10(移交 Eclipse 基金會)
- 定位:在 Java SE 基礎上構建,提供企業級開發標準 API 與運行時契約:
- 核心技術棧:
- Web 層:Servlet、JSP、JSF、JAX-RS (REST)、WebSocket、JSON-P/B
- 業務層:EJB、CDI、JTA (事務)、JPA (ORM)、Bean Validation
- 集成層:JMS、JCA、JavaMail、Batch、Concurrency
- 安全/管理:JAAS、JACC、JMX、JSR-375 Security API
- 現代演進:MicroProfile 針對微服務優化;Spring Boot 實質成為事實標準實現;Jakarta EE 9+ 斷兼容重塑命名空間。學習路徑:《J2EE 探索者》專欄、遷移指南系列。
📱 Java ME(Micro Edition)—— 嵌入式與移動端輕量級
- 前身:J2ME → Java ME 8(對齊 SE 8 子集)
- 定位:資源受限設備:功能機、PDA、機頂盒、打印機、IoT 感測器、智能卡。
- 核心組件:
- CLDC (Connected Limited Device Configuration):精簡 JVM、核心庫
- MIDP (Mobile Information Device Profile):UI、網絡、持久化、推送
- 可選包:Bluetooth、Location、Web Services、Sensor API 等
- 特色:一次編寫,多設備部署,利用設備原生能力。現 Android 取代手機端主流,Java ME 轉向嵌入式 IoT 領域。學習資源:四部分 J2ME/MIDP 教程系列、《構建靈活 J2ME 移動應用》教程、developerWorks Wireless 專區。
🔗 三者關係圖譜
Java SE (Foundation)
↑
Java EE (Enterprise APIs & Runtime) Java ME (Subset + Profiles)
↑ ↑
Jakarta EE / Spring Boot / MicroProfile Embedded / IoT / Cards
Java SE 是根基,EE 與 ME 分別向上、向下延伸。現代雲原生開發以 Java SE + Spring Boot/Jakarta EE/MicroProfile 組合為主流,ME 則深耕垂直嵌入式場景。
🎯 版本選型建議
| 場景 | 推薦基線 | 說明 |
| 企業級微服務/單體應用 | Java 17/21 LTS + Spring Boot 3.x / Jakarta EE 10 | 長期支援、效能優化、現代特性、生態成熟 |
| Android 開發 | Java 8/11 (插糖語法) + Kotlin 優先 | Android 運行時基於 OpenJDK,Kotlin 為官方首選語言 |
| 嵌入式/IoT 設備 | Java ME 8 / Java SE Embedded / GraalVM Native Image | 視設備資源選擇,Native Image 啟動快、內存小 |
| 大數據/流處理 | Java 11/17 + Flink/Spark/Kafka Streams | 生態庫多基於 Java 8+,LTS 版本穩定性最佳 |