Java com。*包名称空间

通常看到com。* package命名空间。 “com”是什么意思? 谢谢。

包的命名约定在JLS中指定。 这里是相关的代码片段(这个部分还有很多):

JLS 7.7独特的软件包名称

您首先拥有(或属于具有)互联网域名的组织(如sun.com ),形成一个唯一的软件包名称。 然后,按组件逐个反转此名称,以在此示例中获取com.sun ,并使用此名称作为软件包名称的前缀,并使用组织内开发的约定来进一步pipe理软件包名称。

Sun的代码约定文件的命名规则部分也给出了这个规定:

软件包 :唯一软件包名称的前缀总是以全小写ASCII字母书写,并且应该是顶级域名之一,目前是comedugovmilnetorg ,或者是其中一个英文双字节名称1981年ISO 3166标准中规定的识别国家的字母代码。

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

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


所以com. 包名中的前缀表示与域名中的.com后缀相同:“commercial”。

当创buildJava时,Sunbuild立了一个约定,即包装名称应该以创build包的公司或个人的反向域名开始。 由于DNS保证域名是唯一的(例如只提供给一个组织或个人),这样可以避免重复。

所以微软的Java软件包的名称以com.microsoft开头,Sun的是com.sun等等。

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

没有要求您以这种方式命名您的软件包,对于任何可能远程结束在您的组织之外使用的软件包,这只是一个非常好的主意。

com来源于商业 。 像组织一样来源于组织

包表示一个包含相关的类和接口组的目录。 包是两种types。 1.内置包装。 2.用户定义包。 注意。 一个包可以包含子包。 例如。 java.awt(这里的awt是一个包); java.awt.event(这里的event是一个以java.awt表示的子包)

如果你之前没有这样做 – 下载一些Java应用程序的源代码(例如jEdit ),并查看源代码中的文件结构。 它可能会澄清一切可能。 在jEdit中有几个不同的包,所以你会看到如何一切正常。
顺便说一句 – 如果你从来没有读过任何人的代码 – 去做,尽快! 即使你不了解所有东西或只是一小部分 – 这是一个很好的编程习惯!