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

Java 三大版本總覽:J2SE、J2EE、J2ME 定位、架構與技術棧對比

     編輯:J2ME

歷史背景

Sun ONE (Open Net Environment) 架構以 Java 為核心,根據應用領域劃分為三大平台版本:

  • J2SE (Java 2 Standard Edition):桌面/工作站應用基石
  • J2EE (Java 2 Enterprise Edition):企業級分散式系統標準
  • J2ME (Java 2 Micro Edition):嵌入式/行動裝置輕量運行環境

註:Java 5 (2004) 起更名為 Java SE / EE / ME,但「J2SE/J2EE/J2ME」稱呼仍廣泛沿用。

一、J2EE:企業級分散式應用標準

核心優勢

  • 多層架構藍圖 (J2EE Blueprints):將開發工作分為「商業邏輯 (EJB)」、「表示邏輯 (Servlet/JSP)」、「系統資源 (容器管理)」,開發者專注前兩層。
  • 標準化平台契約:J2EE 規範定義 API、部署描述檔、相容性測試 (CTS)、參考實作 (RI),確保 Write Once, Run Anywhere on Any J2EE Server。
  • 容器管理服務:事務 (JTA)、安全 (JAAS/JACC)、遠程呼叫 (RMI-IIOP)、連線池、生命週期、訊息 (JMS) 皆由容器透明提供。

關鍵技術棧

層級技術角色
Web 表示Servlet, JSP, JSF, JSTL請求處理、動態頁面渲染
商業邏輯EJB (Session/Entity/Message-Driven)交易、安全、遠程、持久化
資料存取JDBC, JPA, JDO關聯資料庫統一存取
整合通訊JMS, JCA, RMI-IIOP, JAX-WS/RS訊息佇列、資源適配器、Web Service
命名目錄JNDI (LDAP, DNS, RMI Registry)統一查找資源/服務
郵件/事務JavaMail, JTA郵件收發、分散式事務

部署單元

  • .ear (Enterprise Archive):完整應用,含 application.xml、多個模組
  • .war (Web Archive):Web 模組,含 web.xml、JSP/類別/靜態資源
  • .jar (EJB Jar):EJB 模組,含 ejb-jar.xml、類別
  • .rar (Resource Adapter):JCA 適配器

二、J2ME:資源受限裝置的 Java

架構三層模型

+------------------------+
|   Profile (垂直領域)   |  例:MIDP (手機), PDA Profile, Personal Profile
+------------------------+
|  Configuration (水平)  |  例:CLDC (160KB RAM), CDC (2MB+ RAM)
+------------------------+
|       JVM (KVM/CVM)    |  針對硬體移植的虛擬機
+------------------------+
|     Host OS / HW       |
+------------------------+

兩大 Configuration

特性CLDC (Connected Limited Device Configuration)CDC (Connected Device Configuration)
目標裝置手機、PDA、寵物追蹤器 (128KB~512KB RAM)機頂盒、車載系統、工業控制器 (2MB+ RAM)
VMKVM (Kilobyte VM)CVM (完整 HotSpot 子集)
核心套件java.lang, java.util, java.io, javax.microedition (J2SE 子集)近乎完整 J2SE (含 AWT, RMI, Reflection)
缺少功能AWT/Swing, 自訂 ClassLoader, finalize, 弱引用, RMI, Reflection極少

MIDP (Mobile Information Device Profile) 關鍵 API

  • MIDP 1.0:javax.microedition.lcdui (高/低階 UI)、RecordStore (RMS)、HttpConnection、Timer。
  • MIDP 2.0:新增 GameCanvas、Layer/Sprite/TiledLayer、PushRegistry、HTTPS、Multimedia API (MMAPI)、Security/Trusted Domain。
  • MIDP 3.0 (JSR 271):多任務、豐富 UI、SVG、資料庫 (SQL)、Web Service、完善安全模型 (但市場佔有率極低)。

三、J2SE:桌面與伺服器端基礎平台

核心價值

  • 完整 Java 語言、JVM、核心類庫 (Collections, I/O, Concurrency, NIO, Swing, AWT, RMI, JDBC, Security, XML, Scripting…)。
  • J2EE 執行環境、J2ME 建構工具 (javac, jar, javadoc, apt) 均建立於 J2SE 之上。
  • 跨平台 (Windows/Linux/macOS/Solaris)、高效能 (JIT、逃逸分析、壓縮指標、G1/ZGC)、模組化 (JPMS/Java 9+)。

版本演進里程碑

版本年份關鍵特性
J2SE 1.42002NIO, Logging, Preferences, Assert, JSSE, JDBC 3.0, 正則表達式
Java 5 (1.5)2004Generics, Enum, Annotation, Autoboxing, Varargs, Concurrency utils, JVM TI
Java 62006Scripting (JSR 223), Compiler API, JDBC 4.0, JAX-WS/WS, 大幅效能優化
Java 72011NIO.2, Fork/Join, Try-with-resources, Diamond, invokedynamic, G1 GC
Java 82014Lambda, Stream, Default Method, Date/Time API, Nashorn, Metaspace 取代 PermGen
Java 11 (LTS)2018HTTP Client, var, String/Collection 新方法, Flight Recorder, 無 Java EE 模組
Java 17 (LTS)2021Sealed Class, Pattern Matching, Records, Strong Encapsulation, macOS ARM 支援
Java 21 (LTS)2023Virtual Threads (Project Loom), Structured Concurrency, String Templates, Sequenced Collections

四、三者關係與選型指南

J2SE  ⊇  J2ME (CLDC/MIDP 類庫為 J2SE 子集)
J2EE  ⊇  J2SE (J2EE 容器運行在 J2SE 之上)

選型決策樹:
├─ 目標為手機/嵌入式/極限資源 → J2ME (CLDC/MIDP)
├─ 目標為桌面應用/獨立服務/建構工具 → J2SE
└─ 目標為企業級分散式/高併發/事務/整合 → J2EE (現代多用 Spring Boot / Jakarta EE 於 J2SE 之上實踐)

結語

理解 J2SE/J2EE/J2ME 的定位邊界與技術棧,能幫助團隊在專案啟動時快速鎖定技術選型、避免過度設計。雖然品牌已更名為 Java SE/EE/ME,但三大版本「標準版為基、企業版為擴、微型版為縮」的核心關係至今未變。

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