Java常量命名规范仅强制要求public static final编译期常量全大写加下划线;需同时满足static、final、编译时常量(基本类型或字符串字面量)三条件;布尔和数值型常量同样适用;final局部变量不视为常量,应小驼峰命名。

Java 常量命名规范的核心是:只对 public static final 修饰的编译期常量强制要求全大写加下划线;其他带 final 的变量不在此列。
哪些才算“常量”?必须满足三个条件
只有同时满足以下三点的变量,才按常量规范命名:
- 被
static修饰(属于类级别,而非实例) - 被
final修饰(值不可变) - 是基本类型或字符串字面量等编译时常量(如
public static final int TIMEOUT = 3000;)
例如:private static final String DB_URL = "jdbc:mysql://..."; 符合;而 private final String token;(实例字段)或 final List<String> roles = new ArrayList<>();(运行时初始化、非编译时常量)都按普通变量命名,即 dbUrl、roles。
全大写+下划线的具体写法
每个单词全部大写,用下划线 _ 连接,名称需直白表达用途:
立即学习“Java免费学习笔记(深入)”;
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
- ✅ 正确:
MAX_RETRY_COUNT、DEFAULT_CHARSET、HTTP_STATUS_CODE_OK - ❌ 错误:
MaxRetryCount(大驼峰,是类名风格)、max_retry_count(小写,易与配置项混淆)、MAXRETRYCOUNT(无分隔,可读性差)
注意:下划线仅用于分隔语义清晰的单词,避免过度拆分,比如 USER_LOGIN_ATTEMPT_LIMIT 清晰,但 U_S_E_R_L_O_G_I_N... 不可取。
布尔常量和数字常量同样适用
即使是 boolean 或数值型常量,只要符合 static final 编译时常量条件,就统一用大写风格:
public static final boolean IS_DEBUG_ENABLED = true;public static final double PI = 3.1415926;private static final long ONE_HOUR_MS = 60 * 60 * 1000L;
不推荐写成 isDebugEnabled 或 pi —— 那是普通变量命名方式,会削弱其“不可变常量”的语义提示。
别把“final 局部变量”当常量来大写
方法内声明的 final 变量只是防止重赋值,不是工程意义上的常量,应遵循小驼峰规则:
- ✅ 推荐:
final String userName = request.getParameter("user"); - ✅ 推荐:
final int pageSize = 20; - ❌ 不要:
final String USER_NAME = ...;或final int PAGE_SIZE = ...;
这样既保持风格统一,也避免让读者误以为它们是全局共享的配置常量。

















