当我转到 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 类(如
java.lang
)时所做的那样。
最佳答案
我认为这是相当随意的。正如 Jon Skeet 在他对您链接到的问题的回答中所说,其中大部分是历史性的。一个很好的例子是 javax.sql——它包含与 JDBC 相关的类,这些类最初是 J2EE 的一部分,但在 1.4 中被引入 J2SE。所以现在在 java.sql 和 javax.sql 之间存在毫无意义的类划分。 JDK 中的 java/javax 拆分没有特别的含义。
- CORBA 类位于它们所在的位置,因为它们不是由 Java 标准定义的;它们是 CORBA 规范中定义的接口(interface)的翻译。
- 标准的 J2SE JDK/JRE(javax.sql、javax.xml)附带了大量的 javax.* 包。还有一些没有的 javax.* 包(javax.inject、javax.servlet 等)。但是没有不在 JDK 中的 java.* 包。
- 我相信引导类加载器会加载 java.* 和 javax.* 类。
关于java - 关于 javax 与 java 包的一些基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9502962/