本文目录导读:

在Java开发中,规范代码格式不仅能提高可读性,还能减少团队协作中的冲突,以下是一套主流的、基于Google Java Style和阿里巴巴Java开发手册的代码格式规范实践指南。
使用自动化工具(最推荐)
不要靠人工记忆和对齐,直接使用工具自动格式化。
-
IDE 内置格式化
- IntelliJ IDEA:
Ctrl + Alt + L(Windows/Linux) 或Cmd + Option + L(Mac)。 - Eclipse:
Ctrl + Shift + F。
- IntelliJ IDEA:
-
配置统一格式文件
- 下载 Google Java Style 配置文件 (
intellij-java-google-style.xml) 导入IDE。 - 或使用 Alibaba Java Coding Guidelines 插件(阿里规约检查+格式化)。
- 下载 Google Java Style 配置文件 (
-
构建工具强制检查 (Checkstyle/Spotless)
- Maven/Gradle 集成
spotless-maven-plugin,在mvn compile时自动检查并修复格式。
- Maven/Gradle 集成
核心格式规范详解
缩进与括号
-
缩进:统一使用 4个空格,禁止使用Tab(或设置Tab转换为4个空格)。
-
左大括号:不换行(K&R风格)。
// ✅ 正确 if (condition) { doSomething(); } // ❌ 错误(左大括号独占一行在Java中不推荐) if (condition) { doSomething(); }
空行与空格
- 空行:
- 连续的空行不超过 1行。
- 不同逻辑块之间(方法之间、变量声明与代码之间、return语句前)需要空行。
- 空格:
- 关键字(
if,for,while)后紧跟一个空格,不要紧贴括号。 - 二元运算符(, , ,
&&等)前后各加一个空格。 - 强制转型的括号后不加空格:
(String) object - 逗号、分号后加空格:
for (int i = 0; i < 10; i++)
- 关键字(
行宽与换行
-
行宽:推荐 120字符 或 100字符(IDE底部有竖线标记),超过该长度必须换行。
-
换行规则:
- 在运算符( 或 或
&)之前换行,运算符放在行首(便于阅读链条)。 - 换行后 缩进8个空格(相对于上一层缩进4个空格,即缩进8个),或者对齐上一行的表达式。
// ✅ 正确换行(运算符在行首,缩进4格或8格) String result = someMethod(longParameter1, longParameter2, longParameter3, longParameter4); // 链式调用换行(.在行首) StringBuilder sb = new StringBuilder() .append("Hello") .append("World") .append("!"); - 在运算符( 或 或
变量与常量命名
- 类名:
UpperCamelCase(大驼峰),如UserService。 - 方法名/局部变量:
lowerCamelCase(小驼峰),如getUserName。 - 常量:全大写 + 下划线,如
MAX_COUNT。 - 包名:全小写,如
com.example.project。
注释格式
- 类注释:必须包含作者、日期、功能描述。
- 方法注释:使用 (Javadoc),描述参数、返回值、异常。
/** * 根据用户ID获取用户名称 * * @param userId 用户ID,不能为空 * @return 用户名称,如果不存在返回null * @throws IllegalArgumentException 如果userId为null */ public String getUserName(Long userId) { // ... }
常见“坑”与最佳实践
- 不要手动对齐变量:IDE会自动对齐,手动敲空格对齐后续会被格式化破坏。
- import 不要使用 *:使用全限定导入(
import java.util.List;而不是import java.util.*;),IDE通常有 转单条导入的功能。 - 枚举常量:枚举对象建议每个成员单独一行,最后一个成员加分号。
public enum Color { RED, GREEN, BLUE; } - 注解:若注解带参数且较长,应该换行对齐。
@RequestMapping(value = "/user", method = RequestMethod.GET) public String getUser() {}
团队统一方案(落地步骤)
- 制定规则:全员同意采用 Google Java Style(最主流,几乎无争议)。
- IDE配置:团队共享格式化配置文件(XML/JSON),一键导入。
- Git钩子 (Husky/Git hooks):在
commit或push之前自动运行格式化检查,阻止不符合规范的代码入库。 - CI/CD 流水线:在 Jenkins/GitLab CI 中集成 Checkstyle/Spotless,build失败。
总结一句话
“不要把代码格式当作文档来记忆,把它交给
Ctrl + Alt + L和spotless:check。”