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 等新版本以保持竞争力。

posted @ 2026-02-14 13:13  小肖程序  阅读(3)  评论(0)    收藏  举报