2023-09-28 09:00:05

Javax vs Java包

javax包背后的基本原理是什么?java和javax都包含哪些内容?

我知道很多企业级包都在javax中,Swing、新的日期和时间api (JSR-310)和其他J2SE包也在javax中。


当前回答

最初javax是用于扩展的,有时一些东西会从javax提升到java。

一个问题是Netscape(可能还有IE)限制了可以在java包中的类。

当Swing被设置为从javax“毕业”到java时,出现了一些小问题,因为人们意识到他们必须修改所有的导入。考虑到向后兼容性是Java的主要目标之一,他们改变了主意。

在那个时候,至少对社区(也许对Sun不是)来说,javax的全部意义都消失了。所以现在我们在javax中有了一些可能应该在java中出现的东西……但除了选择套餐名称的人之外,我不知道是否有人能根据具体情况找出其中的基本原理。

其他回答

javax名称空间通常(这是一个载入的词)用于标准扩展,目前称为可选包。标准扩展是非核心api的子集;非核心api的另一部分显然称为非标准扩展,占用了com.sun这样的命名空间。*或com.ibm..核心api占用了java。名称空间。

在Java API世界中,并不是所有的东西都是从核心开始的,这就是为什么扩展通常诞生于JSR请求的原因。根据“明智的建议”,他们最终会被提升到核心位置。

对这个命名法的兴趣来自于Sun的一个失礼之处——扩展本可以被提升到核心,即从javax迁移。*到java。*打破向后兼容的承诺。程序员们哭得声嘶力竭,理智占上风。这就是为什么Swing API虽然是核心的一部分,但仍然保留在javax中。*名称空间。这也是包从扩展升级到核心的方式——它们只是作为JDK和JRE的一部分提供下载。

Java包是基本包,javax包是扩展包。

Swing是一个扩展,因为AWT是最初的UI API。Swing是在1.1版本之后出现的。

Javax过去只用于扩展。但是后来sun将它添加到java库中,忘记了删除x。开发人员开始使用javax编写代码。但后来,太阳公司决定将其改为java。开发人员不喜欢这个想法,因为他们的代码会被毁……所以javax被保留了下来。

java。*包是Java语言的核心包,这意味着使用Java语言的程序员必须使用它们,以便使Java语言有任何使用价值。

javax。*包是可选包,它提供了一种标准的、可伸缩的方式,使所有运行在Java平台上的应用程序都可以使用自定义api。

一些包,如javax。Swing最初并没有包含在Java标准库中。Sun公司决定将它们视为官方的,并将它们作为标准库或标准扩展包含到java的早期版本中。

按照惯例,所有标准扩展都以X开头,而随着时间的推移,它们可以升级为一级扩展,就像javax.swing那样。