Java com.*包名称空间
经常会看到com.*包名称空间。“com”是什么意思?谢谢。标准库以外的Java包通常按照与供应商域相反的顺序命名,例如Microsoft使用Java com.*包名称空间,java,Java,经常会看到com.*包名称空间。“com”是什么意思?谢谢。标准库以外的Java包通常按照与供应商域相反的顺序命名,例如Microsoft使用com.Microsoft,Apache可能使用org.Apache,等等(有关Java中命名约定的详细信息,请参阅)。这是为了防止命名冲突。所以com只是域名的一部分,它对Java没有特殊意义 没有要求您以这种方式命名您的包,对于任何可能在您的组织外部远程使用的包来说,这是一个非常好的主意。当它创建Java时,Sun建立了一个约定,即包名应以创建包的公司
com.Microsoft
,Apache可能使用org.Apache
,等等(有关Java中命名约定的详细信息,请参阅)。这是为了防止命名冲突。所以com
只是域名的一部分,它对Java没有特殊意义
没有要求您以这种方式命名您的包,对于任何可能在您的组织外部远程使用的包来说,这是一个非常好的主意。当它创建Java时,Sun建立了一个约定,即包名应以创建包的公司或个人的反向域名开始构造。因为DNS保证域名是唯一的(即只提供给一个组织或个人),这避免了重复
因此,Microsoft的Java软件包的名称以
com.Microsoft
开头,Sun的Java软件包的名称以com.Sun
开头,依此类推。JLS中规定了软件包的命名约定。以下是相关的片段(本节还有更多内容):
通过首先拥有(或属于拥有)Internet域名的组织,例如sun.com
,可以形成一个唯一的包名。然后逐个组件反转此名称,以在本例中获得com.sun
,并使用此名称作为包名称的前缀,使用组织内制定的约定进一步管理包名称
Sun的代码约定文档的一节中也给出了这一点:
软件包:唯一软件包名称的前缀始终以所有小写ASCII字母书写,并且应该是顶级域名之一,目前为com
,edu
,gov
,mil
,net
,org
,或ISO标准31661981中规定的标识国家的英文双字母代码之一
包名称的后续组件根据组织自身的内部命名约定而有所不同。这些约定可能指定某些目录名组件为部门、部门、项目、机器或登录名
示例:com.sun.eng
,com.apple.quicktime.v2
,edu.cmu.cs.bovik.cheese
因此,包名称中的前缀
com.
与“commercial”的意思相同。com源于commercial。
像org是从组织中派生出来的。如果您以前没有这样做过-下载一些Java应用程序的源代码(例如),查看源代码中的文件结构。它可能会澄清一切。在jEdit中,有几个不同的软件包,因此您将看到所有东西是如何工作的
顺便说一句,如果你从未读过任何人的代码,那就赶快去读吧!!即使你不了解每件事或只是一小部分,也要这样做,因为这是一所优秀编程实践的学校 包表示包含类和接口的相关组的目录。 包有两种类型。 1.内置包。 2.用户定义包。 注意。包可以包含子包。 awt(这里awt是一个包);
java.awt.event(这里event是java.awt中的一个子包)关于这一点,一个有趣的地方是原始java语言规范建议顶级域部分使用大写字母编写,例如
COM.stackoverflow.api
或其他任何形式。实际上没有人这样做,所以他们更改了唯一的包名建议,如上所述。@Greg:Nice info!在第一版中确实如此!这不是一个坏习惯吗?将您的代码绑定到域名?如果我们变成一个非营利组织,改成.org,我会小心地通过阅读别人的代码来学习。您可能不知道另一个是否正确操作。