Java 7中0_0的含义
我已经读过Java7中的内容,我们现在可以写下这个有趣的声明:
public static boolean isZero(int O_O){ return O_O == 0_0; }
问题是:在这种情况下, 0_0
究竟是什么意思?
Java 7中允许使用数字文字中的下划线字符,仅用于可读性目的。 来自javadocs :
在Java SE 7及更高版本中,任何数量的下划线字符(_)都可以出现在数字文字中的数字之间的任何位置。 例如,此function使您可以分隔数字文字中的数字组,从而提高代码的可读性
在Java 7中,您可以添加下划线以增加数字文字的可读性:
int oldMillion = 1000000; int newMillion = 1_000_000;
它对二进制数据特别有用:
byte oldMax = 0b01111111; byte newMax = 0b0111_1111;
下划线在数字上有效 ,只要它们不是第一个字符,最后一个字符,或直接在0x
, 0b
1等的任何一侧,基本上在数字之间。
例如, 4_294_967_296
是更标准的用法。
您的代码将检查传递的int是否等于零。
但是,这不是十进制int,而是八进制int。 0_12
不等于12
或1_2
。 相反,前者等于十进制10。
1在Java 1.7中添加了二进制文字。