
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 程序中的包。基础数据类型包装类如Integer,Double,Boolean等用于在面向对象的世界里操作基本数据类型。核心对象如Object(所有类的根父类)、String、StringBuilder。系统操作如System(用于访问系统属性和标准输入输出)、Runtime(用于与运行时环境交互)。多线程基础如Thread类和Runnable接口。数学运算Math类。异常处理Throwable,Exception,Error等基础异常类。3. 集合框架 (Collections Framework) (java.util)这是进行数据组织和管理的数据结构通常也称为容器极大地简化了数组和集合的操作。核心接口List(有序列表),Set(不重复集合),Map(键值对映射), Queue (队列)。常用实现类ArrayList,LinkedList,HashSet,HashMap,LinkedList等。工具类Arrays(数组工具),Collections(集合工具)提供了排序、搜索等静态方法。通过封装包含业务方法的 Java 类组件 容器的运行模式在不同层次和用途中出现了常见的容器Servlet 容器 EJB 容器 Spring 容器 Web 容器来负责组件的创建、销毁、事务管理和安全控制等。4. I/O 与 NIO (New I/O) (java.io,java.nio)用于处理数据的输入和输出以及与文件系统的交互。传统 I/O (java.io) 基于流 (Stream) 模型如FileInputStream,FileOutputStream,BufferedReader,PrintWriter。新 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类丰富。线程池ExecutorService,ThreadPoolExecutor用于高效管理线程生命周期。并发集合如ConcurrentHashMap,CopyOnWriteArrayList为多线程环境提供了安全的集合类。同步器如CountDownLatch,CyclicBarrier,Semaphore用于协调多个线程之间的工作。7. 数据库连接 (JDBC) (java.sql,javax.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.io,java.nio文件操作、数据流、网络通信基础网络编程java.netTCP/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 取代)。对比 SpringEJB 是 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