Java变量命名强制使用小驼峰(lowerCamelCase),即首词全小写、后续单词首字母大写、无分隔符;常量需同时满足public static final且为基本类型或不可变对象才用SCREAMING_SNAKE_CASE;方法名同用小驼峰并推荐动词开头,类名必须用大驼峰,包名全小写加点分隔,项目名全小写加中划线,布尔变量应带is/can/has前缀以增强语义。

Java 变量命名统一用小驼峰(lowerCamelCase),不是可选项,而是工程实践中的硬性规范。它直接影响代码可读性、工具链兼容性和团队协作效率。
变量必须用小驼峰,不能用下划线
普通变量(包括局部变量、参数、实例变量、非 final 静态变量)一律首词全小写,后续单词首字母大写,中间不加任何分隔符:
- ✅ 正确:userName、httpResponseCode、isExpired、maxRetryCount
- ❌ 错误:user_name(下划线是 Python/Go 风格)、UserName(大驼峰属于类名)、username(多词时丢失语义边界)
- IDE(如 IntelliJ)会默认对下划线变量标黄警告;部分代码检查插件甚至直接报错
常量才用全大写下划线
仅当变量被声明为 public static final 且类型为基本类型或不可变对象(如 String、Integer)时,才使用 SCREAMING_SNAKE_CASE:
- ✅ 正确:public static final int MAX_RETRY = 3;、private static final String DEFAULT_FORMAT = "yyyy-MM-dd";
- ⚠️ 注意:即使加了 final,但没加 static(如实例常量),仍按变量规则用小驼峰,例如 final String apiKey; 而非 API_KEY
- 非 final 的 static 变量(如缓存容器)不属于常量,不能用全大写
方法名和类名风格要严格区分开
小驼峰不仅用于变量,也用于方法名;而类名必须用大驼峰(UpperCamelCase),这是识别用途的最直观方式:
立即学习“Java免费学习笔记(深入)”;
- 方法名推荐动词开头:saveUser()、parseJson()、isValidEmail()
- 类名体现抽象概念:UserService、OrderProcessor、HttpRequestHandler
- 缩写词保持可读性:用 XmlParser 不用 XMLParser,用 HttpServer 不用 HTTPServer
包名、项目名与语义一致性
命名体系要整体协调,让名字“自己说话”:
- 包名全小写+点分隔:com.example.order、org.springframework.web
- 项目名全小写+中划线:user-service、payment-gateway(CI/CD 和文件系统友好)
- 布尔变量带 is/can/has 前缀:isLocked、canAccess、hasPermission —— 比单纯的 locked 更明确
- 避免模糊缩写:customerOrderList 比 col 或 cList 清晰得多


















