Java 7的一个特性是数字文字中的下划线。可以在任何数字文字的数字之间放置下划线,如:int
,byte
,short
,float
,long
,double
。在数字文字中使用下划线将它们分成组以获得更好的可读性。
数字文字中的下划线
让我们看一下在数字文字中的下划线的示例代码:
public class UnderscoreNumericLiterals {
public static void main(String[] args) {
long ccNumber = 1234_5678_9012_3456L;
long ssn = 999_99_9999L;
float pi = 3.14_15F;
long hexadecimalBytes = 0xFF_EC_DE_5E;
long hexadecimalWords = 0xCAFE_BABE;
long maxOfLong = 0x7fff_ffff_ffff_ffffL;
byte byteInBinary = 0b0010_0101;
long longInBinary = 0b11010010_01101001_10010100_10010010;
int add = 12_3 + 3_2_1;
System.out.println("ccNumber="+ccNumber);
System.out.println("ssn="+ssn);
System.out.println("pi="+pi);
System.out.println("hexadecimalBytes="+hexadecimalBytes);
System.out.println("hexadecimalWords="+hexadecimalWords);
System.out.println("maxOfLong="+maxOfLong);
System.out.println("byteInBinary="+byteInBinary);
System.out.println("longInBinary="+longInBinary);
System.out.println("add="+add);
}
}
执行上面示例代码,得到以下结果 -
ccNumber=1234567890123456
ssn=999999999
pi=3.1415
hexadecimalBytes=-1253794
hexadecimalWords=-889275714
maxOfLong=9223372036854775807
byteInBinary=37
longInBinary=-764832622
add=444
数字文字中下划线的技巧:
- 下划线只能放在数字之间。
- 不能在小数位,L/F后缀或基数前缀旁边加下划线。因此
3._14,110_L
,0x_123
都是无效并将导致编译错误。 - 数字之间允许多个下划线,因此
12___3
是有效数字。 - 不能在文字的末尾添加下划线。因此
123_
无效并导致编译时错误。
int _10=0;
int x = _10;
- 将下划线放在数字文字的前面时,会将它视为标识符而不是数字文字。所以不要混淆它。