Java技术体系的主要产品线详解
Java技术体系的主要产品线详解
·Java Card:支持Java小程序(Applets)运行在小内存设备(如智能卡)上的平台。
·Java ME(Micro Edition):支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了移动终端的针对性支持,这条产品线在JDK 6以前被称为J2ME。有一点读者请勿混淆,现在在智能手机上非常流行的、主要使用Java语言开发程序的Android并不属于Java ME。
·Java SE(Standard Edition):支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,这条产品线在JDK 6以前被称为J2SE。
·Java EE(Enterprise Edition):支持使用多层架构的企业应用(如ERP、MIS、CRM应用)的Java平台,除了提供Java SE API外,还对其做了大量有针对性的扩充[4],并提供了相关的部署支持,这条产品线在JDK 6以前被称为J2EE,在JDK 10以后被Oracle放弃,捐献给Eclipse基金会管理,此后被称为Jakarta EE。
1. Java SE(Java Standard Edition,Java标准版)
- 定义:Java的核心平台,提供基础API和JVM,是Java开发的基础。
- 目标:支持通用应用程序开发(桌面、工具、算法等)。
- 核心功能:
- 基础类库(
java.lang
、java.util
、java.io
)。 - 多线程、网络编程、集合框架、IO/NIO。
- 支持泛型、Lambda表达式、模块化(Java 9+)。
- 基础类库(
- 典型版本:Java SE 8(Lambda)、Java SE 17(长期支持版)、Java 20(结构化并发)。
- 应用场景:
- 开发桌面应用(如IDE、数据库工具)。
- 后端服务(如Spring Boot、微服务框架)。
- 算法和数据处理工具。
2. Java EE(现为 Jakarta EE,Java Enterprise Edition,Java企业版)
- 定义:企业级Java平台,提供分布式、可扩展的后端服务支持。
- 目标:构建大型分布式系统、Web服务、微服务。
- 核心功能:
- Web服务(Servlet、JSP、Jakarta RESTful Web Services)。
- 企业级规范(如EJB、JPA、JMS、CDI)。
- 分布式事务、安全、消息队列。
- 典型版本:
- Java EE 8(最后的Oracle版本)。
- Jakarta EE 10(由Eclipse基金会维护,规范包名迁移至
jakarta.*
)。
- 应用场景:
- 企业级后端系统(如银行、电商)。
- 微服务架构(如Spring Framework整合Jakarta EE规范)。
- 云原生应用(如Kubernetes集成)。
3. Java ME(Java Micro Edition,Java微型版)
- 定义:面向嵌入式设备和资源受限环境的Java平台。
- 目标:支持物联网(IoT)、智能卡、移动设备(如旧手机)。
- 核心功能:
- 精简的API(如
javax.microedition
包)。 - 低内存占用、低功耗优化。
- 支持MIDP(Mobile Information Device Profile)等配置。
- 精简的API(如
- 典型版本:Java ME 8(支持物联网设备)。
- 应用场景:
- 智能卡(如SIM卡应用)。
- 工业控制设备、传感器网络。
- 旧手机应用(如功能机游戏)。
4. Java Card
- 定义:专为智能卡和安全设备设计的Java子集。
- 目标:嵌入式安全应用(如SIM卡、银行卡)。
- 核心功能:
- 极小内存占用(KB级)。
- 安全沙箱环境,支持加密算法。
- 通过Applet实现功能扩展。
- 典型版本:Java Card 3.1。
- 应用场景:
- 银行芯片卡、交通卡。
- 电子护照、身份认证设备。
5. JavaFX(现为 OpenJFX)
- 定义:Java的现代GUI开发框架,专注于桌面应用的富客户端(Rich Client)。
- 目标:构建高性能、跨平台的图形界面。
- 核心功能:
- 基于场景图(Scene Graph)的渲染引擎。
- 支持CSS样式、动画、多媒体。
- 与Java SE深度集成。
- 典型版本:OpenJFX 21(独立于JDK发布)。
- 应用场景:
- 桌面应用(如开发工具、监控系统)。
- 数据可视化工具(如图表、仪表盘)。
6. 其他衍生生态
- Android SDK:
- 基于Java(现支持Kotlin)的移动开发框架。
- 使用Java语言但运行在Android虚拟机(ART)上。
- GraalVM:
- 多语言虚拟机,支持Java与JavaScript、Python等混合开发。
- 提供AOT编译(Substrate VM)提升性能。
表格总结:Java技术体系产品线对比
产品线 | 定义 | 目标平台/场景 | 核心功能 | 典型版本 | 当前状态 |
---|---|---|---|---|---|
Java SE | Java核心平台,提供基础API和JVM。 | 桌面应用、通用后端服务、算法工具 | 多线程、集合框架、NIO、模块化(Java 9+) | Java SE 20 | 活跃开发,长期支持版本(LTS) |
Java EE/Jakarta EE | 企业级Java平台,支持分布式系统。 | 企业级后端、微服务、云原生应用 | Servlet、JPA、CDI、RESTful服务 | Jakarta EE 11 | 由Eclipse基金会维护,规范迁移至Jakarta命名空间 |
Java ME | 面向资源受限设备的Java版本。 | 嵌入式设备、物联网、旧手机 | 精简API、低功耗优化 | Java ME 9 | 维护中,侧重物联网生态 |
Java Card | 智能卡专用Java子集。 | 智能卡、安全设备 | 极小内存占用、加密安全 | Java Card 3.1 | 活跃,用于金融和身份认证 |
JavaFX/OpenJFX | Java的现代GUI框架。 | 桌面富客户端应用 | CSS样式、动画、场景图渲染 | OpenJFX 21 | 独立维护,与JDK解耦 |
Android SDK | 基于Java/Kotlin的移动开发框架(运行在ART虚拟机)。 | Android移动设备 | Android API、布局系统、资源管理 | Android SDK 34 | 活跃,Google主导 |
关键总结
- 核心分层:SE是基础,EE(Jakarta EE)扩展企业功能,ME/Java Card面向嵌入式。
- 名称变化:Java EE更名为Jakarta EE,由Eclipse基金会维护。
- 生态扩展:JavaFX专注GUI,Android SDK独立于传统Java平台。
- 未来趋势:Java SE持续演进(如结构化并发),Jakarta EE拥抱云原生。