使用下划线来提高可读性

从 Java 7 开始,可以使用一个或多个下划线(_)来分隔原始数字文字中的数字组,以提高它们的可读性。

例如,这两个声明是等效的:

Version >= Java SE 7

int i1 = 123456;
int i2 = 123_456;
System.out.println(i1 == i2); // true

这可以应用于所有原始数字文字,如下所示:

Version >= Java SE 7

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;

这也可以使用二进制,八进制和十六进制基数的前缀:

Version >= Java SE 7

short binary= 0b0_1_0_1;
int octal = 07_7_7_7_7_7_7_7_0;
long hexBytes = 0xFF_EC_DE_5E;

关于下划线的规则有一些禁止它们放置在以下位置:

  • 在数字的开头或结尾(例如 _123123_不是有效)
  • 毗邻小数点的浮点文字(如 1._231_.23不是有效)
  • 前一个 F 或 L 后缀(例如 1.23_F9999999_L有效)
  • 在一串数字有望位置(例如 0_xFFFF不是有效)