在 Java 项目中,命名规则遵循一定的约定俗成规范,目的是提高代码可读性和团队协作效率。以下是 Java 项目命名的核心规则和常见实践:
一、项目整体命名
项目名
使用小写字母 + 短横线(kebab-case)避免使用空格或下划线。
例:my-project、payment-service
Maven/Gradle 项目
artifactId(项目模块名)使用小写字母 + 短横线
例:spring-boot-starter-web、user-management
模块化项目
子模块名与主项目保持一致风格
例:主项目 data-processor,子模块 data-processor-core、data-processor-api
二、包(Package)命名
基本规则
全小写字母,无下划线或短横线
例:com.example.util、org.apache.logging
域名反转原则
使用公司/组织域名反转作为包前缀
例:公司域名为 example.com → 包名为 com.example.xxx
分层命名
按功能或层级划分
例:
com.example.project.dao // 数据访问层
com.example.project.service // 业务逻辑层
com.example.project.controller // Web 控制层
com.example.project.model // 数据模型
com.example.project.config // 配置类
三、类/接口/枚举命名
类名
大驼峰式(UpperCamelCase)每个单词的首字母均大写,包括第一个单词。
例:UserService、PaymentProcessor
接口名
通常以 able、ible 结尾,或直接描述能力
例:Runnable、Serializable、UserDao
枚举类名
单数形式,表示一组固定常量
例:DayOfWeek、HttpStatus
四、方法/变量命名
方法名
小驼峰式(lowerCamelCase)第一个单词的字母全小写,后续每个单词的首字母大写,其余字母小写,形似骆驼的驼峰。动词开头,描述动作或返回值
例:getUserById()、calculateTotalPrice()
变量名
小驼峰式,避免单字母或无意义命名
例:userList、maxRetryAttempts
常量名
全大写字母 + 下划线(UPPER_SNAKE_CASE)
例:MAX_CONNECTIONS、DEFAULT_TIMEOUT
五、其他命名规则
测试类
在类名后加 Test
例:UserServiceTest、PaymentProcessorTest
布尔类型变量/方法
使用 is、has、can 等前缀
例:isActive()、hasPermission()、canExecute()
DTO/VO/POJO 类
添加后缀明确用途
例:UserDTO(数据传输对象)、UserVO(视图对象)
六、需要避免的命名
❌ 使用 Java 关键字(如 class、int)❌ 无意义的缩写(如 tmp、data1)❌ 拼音与英文混合(如 yonghuService → 应改为 userService)