src/
main/
java/ --> Java 源代码
com.example/ --->为什么这里是com开头
resources/ --> 资源文件 (配置、静态文件等)
test/
java/ --> 测试代码
resources/ --> 测试资源文件
com.example
)作为包的前缀来确保包名的唯一性。这个规则来源于防止不同公司或组织开发的项目之间发生命名冲突。- 域名:`example.com`
- 包名:`com.example`
域名反转的原因主要是因为包名的标准书写方式:包名从最顶层到最具体的层次结构依次递增。在域名反转规则中:
com
是顶层包,表示这是一个商业(commercial)域名。example
是次级包,代表公司的名称或组织名称。utils
或 service
),那么当多个项目被集成到一起时,可能会发生命名冲突,导致编译错误或者功能异常。通过使用域名反转(如 com.example.utils
和 org.somecompany.utils
),每个公司的包名都是唯一的,即使包的功能相似,也不会产生冲突。公司拥有独特的域名,反转后的包名前缀自然是唯一的。每个公司都可以根据自己的域名创建不重复的包结构,确保包在全世界范围内的唯一性。例如:
com.google.android
com.microsoft.azure
通过包名,开发者可以立即知道某个代码片段来自哪个公司或者项目。比如 com.example.project
可以立即指出代码来自 example.com
,而 org.apache.commons
则来自 Apache 的项目。
域名反转后,包名可以继续向下扩展,用来表示不同的模块或功能。例如:
com.example.app.controller
:example公司的app的控制器层代码com.example.app.service
:example公司的app的业务逻辑层代码com.example.app.model
:example公司的app的数据模型可读性等)。看到包名,你也就知道很多信息啦。