【发布时间】:2011-02-09 08:11:08
【问题描述】:
经常看到 com.* 包命名空间。 “com”是什么意思?谢谢。
【问题讨论】:
标签: java
经常看到 com.* 包命名空间。 “com”是什么意思?谢谢。
【问题讨论】:
标签: java
包代表一个目录,其中包含相关的类和接口组。 包是两种类型。 1. 内置封装。 2.用户定义包。 笔记。一个包可以包含子包。 例如。 java.awt(这里 awt 是一个包); java.awt.event(这里的事件是java.awt中的一个子包)
【讨论】:
如果您之前没有这样做 - 下载一些 Java 应用程序的源代码(例如jEdit)并查看源代码中的文件结构。它可能会澄清一切。在 jEdit 中有几个不同的包,所以你会看到一切是如何工作的。
顺便说一句——如果你从来没有读过任何人的代码——去尽快做吧!!即使您不了解所有内容或仅了解一小部分,也可以这样做,因为它是一所很好的编程实践学校!!!
【讨论】:
包的命名约定在 JLS 中指定。以下是相关的 sn-p(该部分还有更多内容):
您首先拥有(或属于拥有)互联网域名的组织,例如
sun.com,从而形成一个唯一的包名称。然后,您逐个组件地反转此名称,以在此示例中获得com.sun,并将其用作您的包名称的前缀,使用您组织内制定的约定来进一步管理包名称。
Sun 的代码约定文档的Naming Conventions 部分也给出了它:
Packages:唯一包名的前缀总是用全小写的ASCII字母书写,应该是顶级域名之一,目前为
com、edu、@ 987654329@、mil、net、org或 ISO 标准 3166, 1981 中指定的用于标识国家/地区的英文双字母代码之一。软件包名称的后续组成部分根据组织自己的内部命名约定而有所不同。这样的约定可能会指定某些目录名称组件是部门、部门、项目、机器或登录名。
示例:
com.sun.eng、com.apple.quicktime.v2、edu.cmu.cs.bovik.cheese
所以包名称中的com.前缀与.com suffix in domain names的含义相同:“商业”。
【讨论】:
COM.stackoverflow.api 或其他。实际上没有人这样做,所以他们改变了上面的唯一包名推荐。
com 源自commercial。 就像 org 是从 organization 派生的。
【讨论】:
标准库以外的 Java 包通常以供应商域的相反顺序命名,例如Microsoft 使用com.microsoft,Apache 可能使用org.apache 等(有关Java 中命名约定的详细信息,请参阅this link。)这是为了防止命名冲突。所以com只是域名的一部分,对Java没有特殊意义。
要求您以这种方式命名您的包,对于任何可能最终在您的组织之外远程使用的包来说,这只是一个非常好的主意。
【讨论】:
在创建 Java 时,Sun 建立了一个约定,即包名应该从创建包的公司或个人的反向域名开始构建。由于 DNS 保证域名是唯一的(即只提供给一个组织或个人),因此可以避免重复。
因此,Microsoft 的 Java 包名称以 com.microsoft 开头,Sun 的 Java 包名称以 com.sun 开头,以此类推。
【讨论】: