java常量命名必须用public static final修饰、全大写、下划线分隔;需语义清晰、按功能归组到专用类;禁用关键字、数字开头及模糊缩写;枚举优先用于有限取值。

Java 中常量命名不需要“配置”,而是通过编码约定直接写在代码里。符合企业开发规范的核心是:用 public static final 修饰,名称全部大写,单词间用下划线分隔,且语义清晰、不缩写、不冲突。
必须满足的命名格式
这是硬性要求,几乎所有主流规范(阿里、Google、Spring 官方)都一致:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 全部字母大写,如
TIMEOUT_MS,不能写成timeoutMs或TimeoutMs - 单词之间严格使用单个下划线
_连接,如DEFAULT_RETRY_DELAY,不可用连字符或驼峰 - 必须由
public static final修饰(接口中可省略public,因默认就是) - 类型需明确,避免歧义:数值用
int/long,浮点用double,字符串用String
语义与组织的最佳实践
光格式对还不够,企业级项目更看重可维护性:
- 常量名要直说用途,比如
HOURS_PER_DAY比DAY_HOURS更符合读序习惯;MAX_LOGIN_ATTEMPTS明确表达业务意图,不写MAX_ATTEMPT这类模糊名 - 按功能归组到专用类或接口中,例如:
RedisConstants、HttpHeaderConstants,而不是全塞进一个叫Constants的万能类 - 避免使用通用前缀如
CONST_或FLAG_,前缀应体现领域,如ORDER_STATUS_PENDING中的ORDER_STATUS_就是合理上下文 - 禁止硬编码替代:哪怕只用一次,只要值固定、有业务含义,就应定义为常量,比如
public static final String ROLE_ADMIN = "ADMIN";
容易踩坑的细节
这些看似小问题,在 Code Review 中高频被拒:
- 不要用 Java 关键字或保留字作常量名,例如
CLASS_NAME(class是关键字)、INT_MAX(易与Integer.MAX_VALUE混淆) - 数字开头非法:
2XX_SUCCESS错误,应改为STATUS_2XX_SUCCESS - 枚举更适合一组有限、相关的取值,比如 HTTP 状态码、订单状态,别用整数常量堆砌;枚举项本身也遵循大写下划线规则:
NOT_FOUND、PAYMENT_REQUIRED - 包内常量类名建议以
Constants结尾(如AuthConstants),方便 IDE 导入提示和团队识别
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










