Java com.* package namespace

2022-08-31 13:02:49

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


答案 1

包的命名约定在 JLS 中指定。以下是相关代码段(本节中还有更多内容):

JLS 7.7 唯一软件包名称

通过首先拥有(或属于具有 Internet 域名的组织,例如 .)形成唯一的包名称。然后,逐个组件地反转此名称,以获取(在此示例中),并使用组织内开发的约定来进一步管理包名称,并将其用作包名称的前缀。sun.comcom.sun

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

软件包:唯一软件包名称的前缀始终以全小写 ASCII 字母书写,并且应为顶级域名之一,当前 、、、、、或 ISO 标准 3166、1981 中指定的标识国家/地区的英文双字母代码之一。comedugovmilnetorg

包名称的后续组件根据组织自己的内部命名约定而有所不同。此类约定可能指定某些目录名称组件为部门、部门、项目、计算机或登录名。

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


因此,软件包名称中的前缀与域名中的.com后缀相同:“commercial”。com.


答案 2

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

所以微软的Java软件包的名字以、Sun开头等等。com.microsoftcom.sun


推荐