为什么长数据类型支持jdk 7中的下划线(_)?

时间:2017-07-03 12:24:25

标签: java java-7 long-integer numeric

我已经看到了JDK 7的新功能。

有长数据类型支持Underscore(“_”)吗? 该功能的其他用途是什么??

代表

  

长l = 123_456_789L;

2 个答案:

答案 0 :(得分:0)

不仅仅是解释here

long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi =  3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;
你甚至可以做到

int x = 5_______2;

但为什么呢? oracle希望提高代码的可读性。

答案 1 :(得分:0)

这只是为了便于阅读。正如docs所说:

  

例如,此功能使您可以分隔数字文字中的数字组,这可以提高代码的可读性。

     

例如,如果您的代码包含具有多个数字的数字,则可以使用下划线字符分隔三个组中的数字,类似于使用逗号或空格等标点符号作为分隔符的方式。

以下示例显示了在数字文字中使用下划线的其他方法:

long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi =  3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;