Java变量命名须用小驼峰(如userName)、语义清晰、禁用关键字和数字开头,常量用全大写下划线(如MAX_CONNECTIONS),布尔变量加is/has/can前缀。

Java 变量命名必须遵循语义清晰、可读性强、符合语言约定的原则,其中小驼峰(lower camelCase)是官方推荐且行业通用的写法。
变量命名的基本规则
Java 变量名必须满足以下硬性要求:
- 只能以字母、下划线(_)或美元符号($)开头,不能以数字开头
- 后续字符可包含字母、数字、下划线或美元符号
- 严格区分大小写,count 和 Count 是两个不同变量
- 不能使用 Java 关键字(如 int、class、return 等)作为变量名
- 避免使用中文或特殊 Unicode 字符(即使语法允许,也严重降低可维护性)
小驼峰(lower camelCase)的正确写法
小驼峰指:首单词全小写,后续每个单词首字母大写,其余字母小写,单词间不加空格或分隔符。
✅ 正确示例:
立即学习“Java免费学习笔记(深入)”;
- userName(不是 username 或 User_Name)
- maxRetryCount(不是 MaxRetryCount 或 max_retry_count)
- isAvailable(布尔变量常用 is/has/can 开头)
- xmlParser(缩写词如 XML、HTTP 通常全部大写,但作为中间部分时仅首字母大写)
❌ 常见错误:
- 首字母大写(UserName → 这是大驼峰,用于类名)
- 下划线分隔(user_name → Python/Go 风格,Java 中不推荐)
- 全大写(USERNAME → 适用于常量,非常量变量禁用)
- 缩写混乱(usrNm 或 uName → 损害可读性,应写全)
语义优先:名字要“说人话”
命名不是拼凑单词,而是表达意图。好的变量名能减少注释需求。
- 用 descriptive(描述性)名称代替缩写或单字母:
✅ customerOrderList,❌ col 或 cList - 布尔变量推荐带语义前缀:
✅ isValid、hasPermission、canEdit,❌ valid、flag1 - 循环变量在简单场景下可用短名(如 i、j),但涉及业务逻辑时应具名:
✅ for (Order order : orderList),❌ for (Order o : list)
特殊情况处理建议
实际开发中会遇到边界情况,需灵活但不失规范:
- 常量(static final):全部大写 + 下划线分隔,如 MAX_CONNECTIONS、DEFAULT_TIMEOUT_MS
- 私有字段:仍用小驼峰,无需加下划线前缀(如 private String firstName;,不是 private String _firstName;)
- 与 JSON/数据库字段映射时:代码内保持小驼峰,通过注解(如 @JsonProperty("user_name") 或 @Column(name = "user_name"))做转换,不妥协命名规范
- 避免数字结尾的歧义:如 value1、value2 不够语义化;优先用 initialValue、updatedValue 等明确含义的名称










