java - 关于 javax 与 java 包的一些基本问题

标签 java package

当我转到 JavaDocs 时,我发现一些类在 java 包中,而另一些类在 javax 中。然后我遇到了javax vs java package .

我从这个链接得到了什么 几乎所有答案都是 javax 包只是 java 库的扩展。我的意思是首先 Java 必须带有核心 Java 库 I.E. java 包,但当开发了更多包时,它们与 javax 一起发布。正确的?

作为开发人员,我立即想到了一些问题。这些不同名称的包对 Java 开发人员有什么影响。以下是问题和分析:-

  1. 即使我同意 javax 只是核心 java 的扩展。但话又说回来,我又看到了完全不同的包,如 org.omg.CORBA 等。为什么将其命名为 javax.omg.CORBA
  2. javaxorg 等软件包是否随标准 JDK 和 JRE 下载一起提供?这些是否需要与 JSE 1.6 分开下载?
  3. 引导类加载器是否默认尝试在这些包中查找类,就像它在处理核心 Java 类(如 java.lang)时所做的那样。

最佳答案

我认为这是相当随意的。正如 Jon Skeet 在他对您链接到的问题的回答中所说,其中大部分是历史性的。一个很好的例子是 javax.sql——它包含与 JDBC 相关的类,这些类最初是 J2EE 的一部分,但在 1.4 中被引入 J2SE。所以现在在 java.sql 和 javax.sql 之间存在毫无意义的类划分。 JDK 中的 java/javax 拆分没有特别的含义。

  1. CORBA 类位于它们所在的位置,因为它们不是由 Java 标准定义的;它们是 CORBA 规范中定义的接口(interface)的翻译。
  2. 标准的 J2SE JDK/JRE(javax.sql、javax.xml)附带了大量的 javax.* 包。还有一些没有的 javax.* 包(javax.inject、javax.servlet 等)。但是没有不在 JDK 中的 java.* 包。
  3. 我相信引导类加载器会加载 java.* 和 javax.* 类。

关于java - 关于 javax 与 java 包的一些基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9502962/

相关文章:

Python 看不到我的子包

java - Java内置的Web Server如何指向index.html?

嵌套对象的 Javax 验证 - 不工作

java - FAST 应用程序间通信的良好协议(protocol)?

java - 文件下载 - 负文件长度

R github 包 w/devtools : warning unknown macro '\item'

java - 从 java 子包访问 protected 属性

java - Java 中的包

java - TreeCell 中的绑定(bind)是否会自动删除

Android - 如何使用包名启动第三方应用程序?