Java命名规则
在 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
)