Java 7中0_0的含义

Arn*_*lle 14 java

我已经读过Java7中的内容,我们现在可以写下这个有趣的声明:

public static boolean isZero(int O_O){
  return O_O == 0_0;
}
Run Code Online (Sandbox Code Playgroud)

问题是:0_0在这种情况下究竟意味着什么?

Jun*_*san 42

Java 7中允许使用数字文字中的下划线字符,仅用于可读性目的.来自javadocs:

在Java SE 7及更高版本中,任何数量的下划线字符(_)都可以出现在数字文字中的数字之间的任何位置.例如,此功能使您可以分隔数字文字中的数字组,这可以提高代码的可读性

  • 哇,看看那个数字攀登! (8认同)

jlo*_*rdo 15

在Java 7中,您可以添加下划线以增加数字文字的可读性:

int oldMillion = 1000000;
int newMillion = 1_000_000;
Run Code Online (Sandbox Code Playgroud)

它对二进制数据特别有用:

byte oldMax = 0b01111111;
byte newMax = 0b0111_1111;
Run Code Online (Sandbox Code Playgroud)


ζ--*_*ζ-- 8

下划线是有效,因为它们不是第一个字符,最后一个字符,或者直接上的任一侧在数字作为长0x,0b1等,基本上数字之间.

例如,这4_294_967_296是更标准的用法.

您的代码将检查传递的int是否等于零.

但是,这不是十进制int,而是八进制int.0_12不等于12或1_2.相反,前者等于十进制10.

1在Java 1.7中添加了二进制文字.