J2EE,Java EE,Jakarta EE 命名之间的恩

介绍

简单来说,上面所有的名字指的都是一个东西 Java Platform, Enterprise Edition

上面的几个名词都是下面的内容的简写:

  • J2EE(Java 2 Platform, Enterprise Edition)
  • Java EE (Java Platform, Enterprise Edition)
  • Jakarta EE(Jakarta Enterprise Edition)

上面的排序是按照时间演进来进行排序。

为什么叫 J2EE

1998年12月,SUN公司发布了JDK1.2,开始使用Java 2 这一名称。

第二年 Sun 公司联合IBM、Oracle、BEA 等大型企业应用系统开发商共同制订了一个基于Java 组件技术的企业应用系统开发规范,名字很自然就取为Java 2 Platform Enterprise Edition 简称J2EE。

最开始的时候 Sun 是希望这个标准和基于 Java 的扩展给企业用户用的。

按照 Java 版本的定义,Java 是不使用主版本的,所以自然就使用了数字 2。

这个就导致 J2EE 实在是难理解。

最令人郁闷的 EJB 就是 J2EE 中的内容,因为程序员实在烦躁这个 EJB 的容器管理和注入,所以就有了一个轻量的框架 Spring,这就是是另外一个演进路径了。

Java 1.0 的版本语言规范,现在还可以在伯克利的网站上找到:The Java Language Specification

随后在 1999 年发布的 1.2 版本中,有些扩展就从 Java 1.0 版本中拆分出来了,这些拆分的内容就被 Sun 用来作为 Java 的企业版来发布了。

对于拆分出来的有关企业部分的内容,需要一个新的名字,那么这个名字就自然的使用了 Java 2 Platform Enterprise Edition , 标准链接: Java 2 Platform, Enterprise Edition (J2EE) Overview

这个名字一直使用到了 2006 年了。

Java EE

在 2006 年 ,Java 1.5 版本发布了,J2EE 这个名字就停止使用了,确实这个名字也难理解。

J2EE 就被改成了 Java EE 或者 Java Platform Enterprise Edition

这个名字更加简单明了,去掉了比较有歧义的数字 2。

Jakarta EE

时间来到了 2017 年,这个时候 Java 已经属于 Oracle 了。

Oracle 捐 Java EE 给 Eclipse 基金会了。

按照 Oracle 的尿性,一般给点留点,Java 这几个字,Oracle 是肯定不会给的,Eclipse 拿到 Java EE 也没有办法用 Java 这个字。

咋办呀,改名字呗,Eclipse 经过社区的投票,就把 Java 改成了 Jakarta。

这一改,又和 Apache 的 Jakarta 重复了,其实也好,不管怎么样总算是有个名字了。

这就是现在有关 Java 企业版部分的内容就被称为 Jakarta EE 了。

下面的表格显示了 Jakarta EE 的版本演进史。

结论

简单一句话,上面这堆东西就是大部分可能都没有用到的 Java EE (Java 企业版)中的包。

全部评论

相关推荐

05-09 16:22
已编辑
华南师范大学 Java
  一面四小时后通知次日二面——————————🧠 个人背景与项目经历1.XX系统是你们这边的项目吗?你一直在做这个项目吗?2.做过一个XX项目是吧?是学习项目还是公司项目?3.项目中你主要负责了什么?4.你参与的项目经验多吗?5.除了XX和XX系统,有没有别的项目可以讲讲?💻 技术能力 - 后端开发6.数据库与安全7.你们系统是怎么存储用户密码的?8.单纯用 MD5 会有撞库风险,如何防御?9.接口调用怎么验证调用方身份?10.使用 MD5 校验上传文件的目的是什么?☕Java & Spring11.Spring Boot 用了哪些 starter?各自的作用是什么?12.如果第三方 starter 功能不够怎么办?13.Spring Boot 中有没有用到 AOP?14.可以用来扩展 starter 的方式有哪些?15.Spring 全家桶覆盖的范围够用吗?多线程与线程安全16.ConcurrentHashMap 为什么线程安全?17.JDK1.8 之前和之后的实现有何区别?18.size() 方法是怎么统计的?是否加锁?🔐 安全性与权限控制19.上传文件前需要做哪些安全校验?接口安全20.接口层面做了哪些安全处理?21.JWT 是怎么生成的?22.JWT 是用哪个库实现的?签名算法是什么?23.Token 刷新的触发机制是什么?24.项目中有没有做 token 自动续期?幂等性25.接口幂等性有哪些实现方式?⚙️ 系统架构与中间件26.Redis 与缓存机制27.什么是缓存穿透?怎么解决?28.什么是缓存击穿?怎么解决?29.什么是缓存雪崩?怎么解决?30.热 key 会带来什么问题?如何应对?MQ & 延迟任务31.用 MQ 实现了什么业务?32.如何通过 MQ 做延迟队列?解决了什么问题?🧱 设计模式33.工厂模式和抽象工厂模式的区别是什么?34.代理模式和装饰器模式有什么不同?🧠 Java 基础知识35.Java 能否继承多个类?36.接口中能定义实现方法吗?JDK8 之后呢?37.接口中 default 方法你了解吗?🧪 Linux 运维基础38.在 Linux 下怎么查看远程端口是否可达?39.除了 telnet 还有什么命令可以测试端口?(比如 nc)
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务