从Java 7开始,可以使用一个或多个下划线(_)分隔原始数字文字中的数字组,以提高其可读性。
例如,这两个声明是等效的:
int i1 = 123456; int i2 = 123_456; System.out.println(i1 == i2); // 真
可以将其应用于所有原始数字文字,如下所示:
byte color = 1_2_3; short yearsAnnoDomini= 2_016; int socialSecurtyNumber = 999_99_9999; long creditCardNumber = 1234_5678_9012_3456L; float piFourDecimals = 3.14_15F; double piTenDecimals = 3.14_15_92_65_35;
这对于二进制,八进制和十六进制基数也可以使用前缀:
short binary= 0b0_1_0_1; int octal = 07_7_7_7_7_7_7_7_0; long hexBytes = 0xFF_EC_DE_5E;
关于下划线,有一些规则禁止将它们放在以下位置:
在数字的开头或结尾(例如,_123或者123_是不是有效)
毗邻浮点字面小数点(例如,1._23或者1_.23是不是有效)
前一个F或L后缀(例如1.23_F或9999999_L是不有效)
在一串数字有望位置(例如0_xFFFF是不是有效)