为什么1_2_3_4是java中的有效整数文字?

时间:2015-06-13 06:58:04

标签: java oop inheritance integer literals

为什么以下工作?

int a=1_2_3_4;
System.out.println(a);   // 1234

1 个答案:

答案 0 :(得分:4)

数字文字在JLS 3.10.1中指定。

  

十进制数字是单个ASCII数字0,表示整数零,或者由1到9的ASCII数字组成,可选地后跟一个或多个从0到9的ASCII数字,其中散布着下划线,表示正整数。

[...]

  

十六进制数字由前导ASCII字符0x或0X后跟一个或多个散布有下划线的ASCII十六进制数字组成,并且可以表示正整数,零或负整数。

[...]

  

八进制数字由ASCII数字0后跟一个或多个以下划线散布的ASCII数字0到7组成,并且可以表示正整数,零或负整数。

[...]

  

二进制数字由前导ASCII字符0b或0B组成,后跟一个或多个散布有下划线的ASCII数字0或1,并且可以表示正整数,零或负整数。

如果你问为什么下划线不必是十进制文字的三位数组,不同的文化将数字组合不同 - 当然对于十六进制和二进制文字,根据用途,你可能想要各种不同的明显分组。