当我去JavaDocs时,我在java
包中找到了一些类,而有些类在javax
中。然后我遇到了javax vs java package。
我从这个链接得到什么
几乎所有答案都是javax
包只是java库的扩展。我的意思是首先Java必须带有核心Java库I.E. java
包,但是当更多包开发后,它们会以javax
发布。对?
作为开发人员,我立即想到了一些问题。这些不同命名的包对Java开发人员有什么影响。以下是问题和分析: -
javax
只是核心java的扩展。但是我再次看到完全不同的包,例如org.omg.CORBA
等。为什么这个被命名为javax.omg.CORBA
?javax
,org
这样的软件包是否带有标准的JDK和JRE下载?这些是否需要与JSE 1.6分开下载?java.lang
)一样。答案 0 :(得分:4)
我认为这是相当武断的。正如Jon Skeet在回答你所链接的问题时说的那样,其中很多都是历史性的。一个很好的例子是javax.sql - 它包含与JDBC有关的类,这些类最初是J2EE的一部分,但是在1.4中引入了J2SE。所以现在java.sql和javax.sql之间存在着无意义的类拆分。 JDK中的java / javax拆分没有特别的含义。
答案 1 :(得分:2)
历史上,我们的想法是java。*包将随JDK一起提供,而javax。*包将是必须单独下载的包。在某种程度上它仍然以这种方式工作;所有java。*包都附带JDK,并且有许多javax。*包,比如servlet,必须单独下载。
当Sun决定将一些javax。*软件包(如Swing)移动到主JDK中时,一个猴子扳手被投入到这个方案中。他们实际上是要将包名从javax.swing更改为java.swing,但是当很明显这会破坏大量代码的向后兼容性时,他们决定将包移入,但保留javax。摇摆名称。所以这个名字不再是指示性的,而是出于历史原因。如果org.omg和org.w3c软件包发生同样的事情(它们是第三方库被移入核心JDK并且名称无法更改),我不会感到惊讶。无论如何,如果它在JDK API文档中,您可以使用它而无需下载除主JDK之外的任何内容,并且类加载器会发现它很好。
答案 2 :(得分:1)
org.omg
包你看到包名和域名之间的联系吗?Color
,Font
等),可以导入它们,而不是java.lang
包,其类 不 需要在代码中包含import语句。java.lang不需要导入..是不是因为lang类被更频繁地使用?
基本上,是的。请注意,它仅与编译器相关。类文件包含完全限定的类名AFAIU。