javax 包是什么

本文写于 2022-06-17

为什么叫 javax

在很多 Java 程序中我们都可以看到 javax 包的身影,那么他到底是何方神圣呢?为什么它长得和 java 如此相似,只是多了一个 x 而已。

早期,Java 自带的类通常都是放在 java 开头的包中的——在最早的时候确实是这样。但后来出现了一些没有包含在标准函数库中的包。这些被称为“扩展”,英文就是 extension。

扩展有两种类型:标准的与非标准的。Sun 认可的扩展就是标准扩展,其余的即为非标准类型(非标准扩展不一定会被认可使用)。标准扩展都以 javax 作为包名称开头。

随着版本的迭代,标准扩展就逐渐被认为可以成为 Java 标准库的一部分了。

但 Sun 公司在发行 1.2 版本时,将包名从 javax 换成了 java。开发者们发现他们之前所写的每一个程序都要跟着改写——不知道多少 import 述句是以 javax 开头的。

在最后的关头,开发者终于说服 Sun 采用“管它的命名传统,先保护程序再说”的方法。

所以现在看到函数库中以 javax 开头的包就会知道它以前曾经是扩展,后来才有了标准的名份。

javax 里面是什么

javax 里面的接口就是 JavaEE 规范的定义。

写过 Servlet 的同学应该知道,javax.servlet 中只提供给我们了接口,并没有具体的实现——必须要借助 Tomcat 或别的服务器程序才能够使 servlet 程序跑起来。

你猜的不错,javax 中的包都只提供了接口,具体的实现是各个开发者、开发团队自己开发的,javax 中并不提供。

例如 javax.sql 提供的接口由 MySQL、SQLite、Oracle……等等服务器软件自行实现。

为什么 jdk 下载完后 javax 只有这么几个包

jdk 会自带一些常用的 javax 包,但 javax 并不只有这么一些,还有很多的包需要你自行引入,例如非常常用的 bean validation。

从 javax 到 jakarta

Java 是 Sun 公司创建的项目,但 Sun 公司后来被 Oracle 给收购了。

Oracle 将 JavaEE 规范捐赠给了 Eclipse 基金会。

但是 Oracle 有一个意见,JavaEE 需要改名,不能再带着 Java 这个词。

因此 Eclipse 基金会在讨论后,将 JavaEE 重命名为了 JakartaEEjavax 也就变成了 jakartax

(完)

posted @ 2022-06-18 21:26  徐航宇  阅读(5997)  评论(0编辑  收藏  举报