Java 7起支持数字字面量中用下划线分隔数字以提升可读性,仅允许出现在数字之间,不可在开头、结尾、小数点或进制/类型后缀邻接处;整型、浮点型及各进制字面量均支持,编译时忽略,推荐按千位或字节对齐合理使用。

Java 7 开始支持在数字字面量中使用下划线(_)作为分隔符,提升可读性,但有明确的使用规则,不能随意添加。
哪些位置可以加下划线
下划线只能出现在数字之间,不能出现在开头、结尾,也不能紧邻小数点或进制前缀(如 0x、0b)或后缀(如 L、F)。
- ✅ 合法:
1_000_000、0x1F_FFFF、123_456.789_01、1_234L - ❌ 非法:
_100、100_、1_.1、1._1、0x_FFFF、0x1F_FF_F_、123_L
支持的数字类型
整型(int、long、short、byte)、浮点型(float、double)和十六进制、二进制、八进制字面量都支持下划线。
- 二进制:
0b1010_1100_1111_0000 - 十六进制:
0xFF_EC_DE_5E - 长整型:
9_223_372_036_854_775_807L - 浮点型:
3.141_592_653_589_793、1.0e-10_5(注意:指数部分也可加,如1e10_5是合法的)
实际使用建议
下划线是纯语法糖,编译时被忽略,运行时与不带下划线的字面量完全等价。推荐按习惯分组,比如每三位分隔千位,或按字节/半字对齐二进制/十六进制值。
立即学习“Java免费学习笔记(深入)”;
- 金额类:用
1_000_000比1000000更易识别数量级 - 掩码或标志位:用
0b1100_0011_0000_0001比连写更易定位字段边界 - 避免过度使用:连续多个下划线(如
1__000)或单个数字加下划线(如1_2_3)虽语法允许,但降低可读性,不推荐
编译器和 IDE 支持
Java 7+ 编译器原生支持,无需额外配置;主流 IDE(IntelliJ IDEA、Eclipse、VS Code + Extension)均能正确高亮和校验。如果遇到“非法字符”报错,请确认源文件编码为 UTF-8,且下划线是 ASCII 下划线(U+005F),而非全角或其它 Unicode 类似符号。










