博客 / 詳情

返回

Java SE 和 Java EE 的核心功能模塊

Java SE :

 

它的目標是提供一個穩定且跨平台的運行環境和核心類庫,用於開發桌面應用、命令行工具和服務器端的基礎應用。 

Java SE 的功能主要由兩大部分構成:JVM (Java虛擬機) 和 核心類庫 (Core Libraries) 。我們通常所説的“功能模塊”,主要指的就是這些核心類庫。

 

以下是其主要的核心模塊:

1. JVM (Java Virtual Machine) - 跨平台的核心

雖然不直接是“類庫”,但它是 Java SE 的靈魂。

  • 作用:負責將字節碼 (.class文件) 解釋或編譯成特定操作系統能理解的機器碼並執行,也就是編譯成不同的平台(x86、ARM等)CPU的指令集,然後,不同平台的虛擬機負責加載字節碼並執行。
  • 核心價值: “一次編寫,到處運行” (Write Once, Run Anywhere) 。正是 JVM 的存在,使得同一個 Java 程序可以在 Windows、macOS、Linux 等不同平台上無縫運行
  • SUN公司制定了一系列的Java虛擬機規範。從實踐的角度看,JVM的兼容性做得非常好,低版本的Java字節碼完全可以正常運行在高版本的JVM上。

2. Java 語言基礎與核心類庫 (java.lang)

這是最核心、最基礎的包,也是唯一會被自動導入到每個 Java 程序中的包。

  • 基礎數據類型包裝類:如 IntegerDoubleBoolean 等,用於在面向對象的世界裏操作基本數據類型。
  • 核心對象:如 Object (所有類的根父類)、StringStringBuilder
  • 系統操作:如 System (用於訪問系統屬性和標準輸入輸出)、Runtime (用於與運行時環境交互)。
  • 多線程基礎:如 Thread 類和 Runnable 接口。
  • 數學運算:Math 類。
  • 異常處理:ThrowableExceptionError 等基礎異常類

3. 集合框架 (Collections Framework) (java.util)

這是進行數據組織和管理的數據結構(通常也稱為容器),極大地簡化了數組和集合的操作。

  • 核心接口:List (有序列表), Set (不重複集合), Map (鍵值對映射), Queue (隊列)。
  • 常用實現類:ArrayListLinkedListHashSetHashMap,LinkedList等。
  • 工具類:Arrays (數組工具), Collections (集合工具),提供了排序、搜索等靜態方法
  • 通過封裝包含業務方法的 Java 類組件 + 容器的運行模式,在不同層次和用途中出現了常見的容器(Servlet 容器 , EJB 容器, Spring 容器, Web 容器)來負責組件的創建、銷燬、事務管理和安全控制等

4. I/O 與 NIO (New I/O) (java.iojava.nio)

用於處理數據的輸入和輸出,以及與文件系統的交互。

  • 傳統 I/O (java.io) :基於流 (Stream) 模型,如 FileInputStreamFileOutputStreamBufferedReaderPrintWriter
  • 新 I/O (java.nio) :基於通道 (Channel) 和緩衝區 (Buffer) 模型,提供了更高的性能和更靈活的操作,尤其適合處理大文件和網絡 I/O

5. 網絡編程 (java.net)

提供了低層次的網絡通信能力。

  • TCP/IP 套接字:Socket 和 ServerSocket 類,用於實現可靠的流式數據傳輸。
  • UDP 數據報:DatagramSocket 和 DatagramPacket 類,用於實現無連接的數據報傳輸。
  • URL 處理:URL 類及相關類,用於訪問萬維網上的資源

6. 併發編程 (java.util.concurrent)

這是構建高性能、多線程應用的強大工具包,遠比基礎的 Thread 類豐富。

  • 線程池:ExecutorServiceThreadPoolExecutor,用於高效管理線程生命週期。
  • 併發集合:如 ConcurrentHashMapCopyOnWriteArrayList,為多線程環境提供了安全的集合類。
  • 同步器:如 CountDownLatchCyclicBarrierSemaphore,用於協調多個線程之間的工作

7. 數據庫連接 (JDBC) (java.sqljavax.sql)

提供了一套標準的 API,用於連接和操作各種關係型數據庫(如 MySQL, PostgreSQL, Oracle)。

  • 核心接口:Connection (數據庫連接), Statement (SQL語句), ResultSet (查詢結果集)。
  • 作用:JDBC 是 Java 程序與數據庫之間溝通的橋樑,它抽象了不同數據庫的差異,讓開發者可以用統一的方式訪問數據

8. XML 處理 (javax.xml)

提供瞭解析和處理 XML 文檔的標準 API,如 DOM 和 SAX 解析器。

9. 日期與時間 API (Java.time) (java.time)

Java 8 引入的全新日期時間 API,取代了舊的 Date 和 Calendar 類,設計更合理,使用更方便,且是不可變且線程安全的

總結:

模塊 核心包 主要功能
基礎核心 java.lang 語言基礎、核心對象、系統操作、多線程基礎
數據結構 java.util 集合框架、日期時間、工具類
輸入輸出 java.iojava.nio 文件操作、數據流、網絡通信基礎
網絡編程 java.net TCP/UDP 套接字、URL 處理
併發編程 java.util.concurrent 線程池、併發集合、同步工具
數據庫連接 java.sql 連接和操作關係型數據庫

掌握 Java SE 的這些核心模塊,就等於拿到了進入 Java 世界大門的鑰匙,也為學習更高級的 Spring、微服務、大數據等技術打下了堅實的基礎。

 


 

Java EE :

 

Java EE (現稱 Jakarta EE),它與 Java SE 構成了企業級開發的兩大支柱。

它在 Java SE 的基礎上增加了一系列的API和庫。方便處理 Web應用、數據庫、消息服務等。

Java EE 的功能主要通過一系列 “技術規範 (Specification)” 來定義,並由不同的 “容器 (Container)” 來提供實現。一個典型的 Java EE 應用服務器(如 WildFly, TomEE, GlassFish)就是一個集成了所有這些容器的平台。

 

以下是其核心功能模塊(即核心技術規範) VS  常用替代實現:

1. Web 層技術

這一層負責處理所有來自客户端的 HTTP 請求和響應。

  • Servlet API (javax.servlet)

    • 作用:Java EE Web 技術的絕對基石。它定義了 Java 類如何響應 HTTP 請求的標準。所有 Java Web 框架(如 Spring MVC, Struts)底層都依賴於 Servlet。
    • 類比:相當於 Web 應用的“發動機”或“神經中樞”
  • JavaServer Pages (JSP) & Expression Language (EL)

    • 作用:一種動態網頁技術,允許在 HTML 代碼中嵌入 Java 代碼片段或標籤,用於生成動態內容。通常與 JSTL (JSP Standard Tag Library) 配合使用。
    • 現狀:隨着模板引擎(如 Thymeleaf, FreeMarker)和前端框架的興起,JSP 已不再是主流,但仍是 Java EE 規範的一部分
  • JavaServer Faces (JSF)

    • 作用:一個基於組件的 MVC Web 框架,旨在通過拖拽組件的方式快速構建用户界面,類似於 .NET 的 ASP.NET Web Forms。
    • 現狀:在企業級市場有一定份額,但在新項目中,Spring Boot + 現代前端框架的組合更為流行

2. 業務層技術

這一層封裝了應用程序的核心業務邏輯。

  • Enterprise JavaBeans (EJB)
    • 作用:用於封裝業務邏輯、事務和遠程調用的組件模型,是傳統 Java EE 的核心。它運行在 EJB 容器中,容器會自動為其管理事務、安全、併發和遠程調用等複雜問題。
    • 類型:主要包括會話 Bean (處理業務邏輯)、消息驅動 Bean (處理異步消息) 和實體 Bean (已過時,被 JPA 取代)
    • 對比 Spring:EJB 是 Java EE 官方的“重量級”解決方案,而 Spring 提供了一個更“輕量級”、更靈活的替代方案,這也是 Spring 變得如此流行的原因之一

3. 數據持久層技術

這一層負責將內存中的對象數據與關係型數據庫進行映射和管理。

  • Java Persistence API (JPA)
    • 作用:Java EE 中最重要和最常用的持久化規範。它定義了一種對象關係映射 (ORM) 的標準,使開發者可以將 Java 對象與數據庫表關聯,而無需編寫大量的 JDBC 樣板代碼。
    • 實現:Hibernate 和 MyBatis 是JPA 裏兩個非常流行的持久層框架。當在 Spring Boot 中使用 spring-boot-starter-data-jpa 時,底層通常就是 Hibernate。 當在 Spring Boot 中使用  mybatis-spring-boot-starter‌   時,底層通常就是 mybatis

4. 基礎服務

這些是支撐整個應用運行的基礎服務(企業級服務,橫跨各層)。

  • Contexts and Dependency Injection (CDI)

    • 作用:Java EE 的依賴注入 (DI) 和上下文管理標準。它提供了強大的類型安全的依賴注入能力,並管理着 bean 的生命週期和作用域(如 Request, Session, Application Scope)。
    • 重要性:是Java EE 應用組裝的“膠水”,也是與 Spring 框架 DI 理念相對應的官方標準
  • Java Transaction API (JTA)

    • 作用:用於管理分佈式事務的 API。它允許將多個資源(如兩個不同的數據庫,或數據庫與消息隊列)的操作納入到一個單一的、原子性的事務中,確保數據一致性(“要麼全做,要麼全不做”)
  • Java Message Service (JMS)

    • 作用:用於在應用程序的不同部分之間進行異步消息傳遞的 API。它支持點對點和發佈/訂閲兩種消息模型,是實現系統解耦和削峯填谷的關鍵技術
  • JavaMail

    • 作用:用於發送電子郵件的 API。
  • JNDI
    • 作用:命名與目錄服務,用於查找和訪問企業中的各種資源。
    • 現狀:已被流行的Spring框架中,用依賴注入 (IoC/DI) 和 Spring 的配置通過註解的方法進行替代使用。
  • Bean Validation

    • 作用:通過註解(如 @NotNull@Size(min=2, max=140))來標準化數據驗證的規範,可以應用於方法參數、返回值、字段等

5. 安全與運維

  • 安全:提供基於角色的訪問控制、認證和加密機制。
  • 容錯與高可用:通過集羣、負載均衡和故障轉移等技術,保證系統穩定運行。

總結與替代對比:

層級 核心規範 (Java EE) 主要功能 現代替代/常用實現
Web 層 Servlet, JSP, JSF 處理 HTTP 請求,生成動態網頁 Spring MVC, JAX-RS (REST)
業務層 EJB 封裝複雜的、有狀態的事務性業務邏輯 Spring Framework (核心是 Spring Core/Beans)
持久層 JPA 對象關係映射 (ORM),簡化數據庫操作 Hibernate/MyBatis (JPA 實現), Spring Data JPA
基礎服務 CDI, JTA, JMS, JNDI, Bean Validation 依賴注入、事務、消息、資源查找、數據校驗 Spring Framework (提供了同名或更優的實現)

 

 

 Java EE/Jakarta EE 是一套官方、全面但相對“重” 的企業級開發規範。而 Spring 生態通過提供更簡單、更靈活、鬆耦合的編程模型,成為了流行的 Java 企業開發的標準。理解 Java EE 的核心(如 Servlet, JPA, CDI, JTA)對於深入理解 Spring 的工作原理和閲讀傳統企業項目代碼至關重要。如今,Jakarta EE 也在積極擁抱雲原生,推出了 Jakarta EE 10/11 等新版本以保持競爭力。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.