- 禁止使用拼音或拼音英文混合
- 禁止使用特殊字符($、_除外)
- 禁止使用保留字/关键字
- 见名知意,避免歧义
| 类型 | 规范 | 示例 |
|---|
| 类/接口 | 大驼峰式 | UserService |
| 方法/变量 | 小驼峰式 | getUserInfo() |
| 常量 | 全大写+下划线分割 | MAX_CONNECTION |
| 枚举类 | 全大写命名(单数形式) | OrderStatus |
| 包名 | 全小写+反向域名 | com.company.module |
| 布尔变量 | 以 is/has/can 等开头 | isAvailable |
- 使用 4 个空格缩进(禁用 Tab)
- 单行字符数不超过 120
- 方法参数之间保留一个空格
- 大括号使用 K&R 风格
- 方法之间添加空行
- 不同逻辑段之间添加空行
- 成员变量与方法之间添加空行
StringBuilder sb = new StringBuilder()
.append("first")
.append("second");
methodWithTooManyParams(param1, param2, param3, param4, param5);
* 用户服务类
* @author Name
* @date 2023-08-15
* @version 1.0
*/
public class UserService {
}
* 获取用户详细信息
* @param userId 用户ID(必须大于0)
* @return 用户实体对象,找不到时返回null
* @throws IllegalArgumentException 参数不合法时抛出
*/
public User getUserById(long userId) {
}
- 禁用 try-catch 吞掉异常
- 自定义异常需继承 RuntimeException
- 异常信息需包含上下文信息
try {
} catch (IOException e) {
log.error("文件读取失败,文件路径:{}", filePath, e);
throw new BizException("文件处理失败");
}
try {
} catch (Exception e) {
}
- ERROR:需要人工介入处理的错误
- WARN:预期外的参数传递或临时性问题
- INFO:重要业务流程日志
- DEBUG:调试信息
log.info("用户[{}]登录成功,IP地址:[{}]", userId, ipAddress);
log.info("用户" + userId + "登录成功");
- 初始化集合时指定容量
- 避免在循环中执行 SQL 操作
- 使用 entrySet 遍历 Map
- 字符串拼接使用 StringBuilder
- 优先使用 StringUtils.isEmpty()
- 必须使用预编译 Statement
- 禁止拼接 SQL 语句