javax包背后的基本原理是什么?java和javax都包含哪些内容?
我知道很多企业级包都在javax中,Swing、新的日期和时间api (JSR-310)和其他J2SE包也在javax中。
javax包背后的基本原理是什么?java和javax都包含哪些内容?
我知道很多企业级包都在javax中,Swing、新的日期和时间api (JSR-310)和其他J2SE包也在javax中。
当前回答
一些包,如javax。Swing最初并没有包含在Java标准库中。Sun公司决定将它们视为官方的,并将它们作为标准库或标准扩展包含到java的早期版本中。
按照惯例,所有标准扩展都以X开头,而随着时间的推移,它们可以升级为一级扩展,就像javax.swing那样。
其他回答
Javax过去只用于扩展。但是后来sun将它添加到java库中,忘记了删除x。开发人员开始使用javax编写代码。但后来,太阳公司决定将其改为java。开发人员不喜欢这个想法,因为他们的代码会被毁……所以javax被保留了下来。
java。*包是Java语言的核心包,这意味着使用Java语言的程序员必须使用它们,以便使Java语言有任何使用价值。
javax。*包是可选包,它提供了一种标准的、可伸缩的方式,使所有运行在Java平台上的应用程序都可以使用自定义api。
所有的javax包都是实验性的包。当Swing足够稳定并准备转移到java包时,那里有太多的代码,他们决定保留它,以保持向后兼容性的承诺。这在Laura Lemay和Rogers Candedhead撰写的Sams社论《Learn Java in 21 days》一书中有解释。
最初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的一部分提供下载。