当前位置:  开发笔记 > 编程语言 > 正文

javax vs java包

如何解决《javaxvsjava包》经验,为你挑选了4个好方法。

javax包背后的理由是什么?什么进入java和什么进入javax?

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



1> TofuBeer..:

最初javax本来是用于扩展,有时候事情会从javax升级到java.

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

当Swing被设置为从javax"毕业"到java时,有一种小小的爆炸,因为人们意识到他们必须修改他们的所有进口.鉴于向后兼容性是Java的主要目标之一,他们改变了主意.

在那个时间点,至少对于社区(可能不是对于Sun而言),javax的全部内容都已丢失.所以现在我们在javax中有一些东西可能应该在java中......但除了选择包名的人之外,我不知道是否有人可以根据具体情况弄清楚原理是什么.


"当Swing被javax从"毕业"转为java时,有一种小小的打击,因为人们意识到他们必须修改所有的进口." 人们抱怨可以使用正则表达式完成某些事情,这是因为他们使用了预生产质量代码?
对.我在Visual Cafe中编写了一个工具,在Sun决定将它保存在javax包之前,在两者之间进行转换(javax和java).

2> Jon Skeet..:

我认为这是一个历史性的事情 - 如果一个软件包是作为现有JRE的补充而引入的,那么它就是javax.如果它是作为JRE的一部分首次引入的(就像NIO那样,我相信)那么它就像是java.不知道为什么新的日期和时间API最终会javax遵循这个逻辑......除非它也可以单独作为库使用以使用早期版本(这将是有用的).许多年后的注意事项:它实际上终于进入java了.

我相信java包有一些限制- 我认为类加载器被设置为允许java.*加载类rt.jar或类似的类.(当然有办理入住手续ClassLoader.preDefineClass.)

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


因为阅读器更容易击中alt-t并输入它比使用iPad进行剪切和粘贴更容易?).你是对的,我认为*我的意思是http://download.oracle.com/javase/tutorial/ext/index.html.没有冒犯BTW我通常会发现你的答案很有用我很惊讶这个被接受了.

3> duffymo..:

java包是"基础",javax包是扩展.

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



4> Vineet Reyno..:

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

并非Java API世界中的所有内容都以核心开头,这就是扩展通常源于JSR请求的原因.他们最终根据"明智的建议"晋升为核心.

对这个命名法的兴趣来自于Sun的一个失礼 - 扩展可能已被提升为核心,即从javax.*转移到java.*打破了向后兼容性承诺.程序员声音嘶哑,更好的感觉占了上风.这就是为什么Swing API虽然是核心的一部分,仍然继续保留在javax.*命名空间中.这也是如何将包从扩展提升到核心 - 它们只是作为JDK和JRE的一部分提供下载.


好吧,先生。这应该已经在这里接受了。
推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有