javax vs java包

javax包的基本原理是什么? 什么进入java和什么进入javax?

我知道javax中有很多enterprise-y包,但Swing,新的日期和时间api(JSR-310)以及其他J2SE包也是如此。


我认为这是一个历史性的事情 - 如果一个软件包是作为现有JRE的补充而引入的,它就会以javax 。 如果它是作为JRE的一部分首次引入的(就像NIO一样,我相信),那么它会以java 。 不知道为什么新的日期和时间API会按照这个逻辑结束为javax ,除非它也可以单独作为一个库与早期版本一起使用(这很有用)。 多年后注意到:毕竟它实际上最终都是在java

我相信对java包有一些限制 - 我认为类加载器的设置只允许从rt.jar或类似的类加载java.*中的类。 ( ClassLoader.preDefineClass肯定有一个检查。)

编辑:虽然官方解释(搜索orbfish建议没有在第一页左右产生)是毫无疑问的“核心”与“扩展”,我仍然怀疑,在许多情况下,任何特定的软件包的决定有一个也是背后的历史原因。 例如, java.beans真的是Java的核心吗?


最初的javax旨在用于扩展,有时甚至会将事件从javax推广到java。

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

当Swing被设置为从javax“毕业”java时,有一种微型炸弹,因为人们意识到他们将不得不修改所有的导入。 鉴于向后兼容性是Java的主要目标之一,他们改变了主意。

在那个时候,至少对于社区来说(可能不是Sun),javax的全部点都丢失了。 所以现在我们在javax中有一些可能应该在java中的东西......但除了选择包名的人之外,我不知道是否有人可以根据具体情况找出理由。


java包是“base”,而javax包是扩展。

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

链接地址: http://www.djcxy.com/p/84169.html

上一篇: javax vs java package

下一篇: UICollectionView layout last row