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; 

下划线在数字上有效 ,只要它们不是第一个字符,最后一个字符,或直接在0x0b 1等的任何一侧,基本上在数字之间。

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

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

但是,这不是十进制int,而是八进制int。 0_12不等于121_2 。 相反,前者等于十进制10。

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