【问题标题】:Java com.* package namespace [duplicate]Java com.* 包命名空间 [重复]
【发布时间】:2011-02-09 08:11:08
【问题描述】:

经常看到 com.* 包命名空间。 “com”是什么意思?谢谢。

【问题讨论】:

    标签: java


    【解决方案1】:

    包代表一个目录,其中包含相关的类和接口组。 包是两种类型。 1. 内置封装。 2.用户定义包。 笔记。一个包可以包含子包。 例如。 java.awt(这里 awt 是一个包); java.awt.event(这里的事件是java.awt中的一个子包)

    【讨论】:

      【解决方案2】:

      如果您之前没有这样做 - 下载一些 Java 应用程序的源代码(例如jEdit)并查看源代码中的文件结构。它可能会澄清一切。在 jEdit 中有几个不同的包,所以你会看到一切是如何工作的。
      顺便说一句——如果你从来没有读过任何人的代码——去尽快做吧!!即使您不了解所有内容或仅了解一小部分,也可以这样做,因为它是一所很好的编程实践学校!!!

      【讨论】:

      • 我会小心阅读别人的代码来学习。您可能不知道其他是否正确。
      【解决方案3】:

      包的命名约定在 JLS 中指定。以下是相关的 sn-p(该部分还有更多内容):

      JLS 7.7 Unique Package Names

      您首先拥有(或属于拥有)互联网域名的组织,例如sun.com,从而形成一个唯一的包名称。然后,您逐个组件地反转此名称,以在此示例中获得 com.sun,并将其用作您的包名称的前缀,使用您组织内制定的约定来进一步管理包名称。

      Sun 的代码约定文档的Naming Conventions 部分也给出了它:

      Packages:唯一包名的前缀总是用全小写的ASCII字母书写,应该是顶级域名之一,目前为comedu、@ 987654329@、milnetorg 或 ISO 标准 3166, 1981 中指定的用于标识国家/地区的英文双字母代码之一。

      软件包名称的后续组成部分根据组织自己的内部命名约定而有所不同。这样的约定可能会指定某些目录名称组件是部门、部门、项目、机器或登录名。

      示例com.sun.engcom.apple.quicktime.v2edu.cmu.cs.bovik.cheese


      所以包名称中的com.前缀与.com suffix in domain names的含义相同:“商业”。

      【讨论】:

      • 一个有趣的地方是原始的 Java 语言规范建议顶级域部分用大写字母编写,例如 COM.stackoverflow.api 或其他。实际上没有人这样做,所以他们改变了上面的唯一包名推荐。
      • @Greg:很好的信息!在第一版中确实是这样! java.sun.com/docs/books/jls/first_edition/html/6.doc.html#9184
      • 这不是一个坏习惯吗?将您的代码绑定到域名?如果我们成为非营利组织并更改为 .org 会怎样。
      【解决方案4】:

      com 源自commercial。 就像 org 是从 organization 派生的。

      【讨论】:

        【解决方案5】:

        标准库以外的 Java 包通常以供应商域的相反顺序命名,例如Microsoft 使用com.microsoft,Apache 可能使用org.apache 等(有关Java 中命名约定的详细信息,请参阅this link。)这是为了防止命名冲突。所以com只是域名的一部分,对Java没有特殊意义。

        要求您以这种方式命名您的包,对于任何可能最终在您的组织之外远程使用的包来说,这只是一个非常好的主意。

        【讨论】:

          【解决方案6】:

          在创建 Java 时,Sun 建立了一个约定,即包名应该从创建包的公司或个人的反向域名开始构建。由于 DNS 保证域名是唯一的(即只提供给一个组织或个人),因此可以避免重复。

          因此,Microsoft 的 Java 包名称以 com.microsoft 开头,Sun 的 Java 包名称以 com.sun 开头,以此类推。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-06-22
            • 2014-08-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-03-30
            • 2015-04-24
            • 1970-01-01
            相关资源
            最近更新 更多