2

尽管 oracle 技术说明指出:

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

example : float pi =    3.14_15F;

float pi =  3.1415F;

但这不会让从事其他人编写的代码的开发人员感到困惑吗?下划线的使用是否会给编译器带来任何开销?

4

2 回答 2

4

但这不会让从事其他人编写的代码的开发人员感到困惑吗?

除非开发人员不懂 Java 语言!这种结构已经得到了足够长的支持,以至于每个 Java 专业人士都应该认识到它……即使他们没有在自己的代码中使用它。

另一方面,如果您的 Java 开发人员没有费心跟上 Java 7 中的新事物,他们可能会(暂时)感到困惑。但真正的解决方案是教育您的开发人员。

下划线的使用是否会给编译器带来任何开销?

开销是如此之小,以至于无法测量。

于 2013-08-28T06:00:39.693 回答
2

这里没有性能问题。

唯一有意义的是使用下划线是在一个非常大的整数或二进制整数中。就像该语言提供的几乎所有语法自由一样,人们可以随意滥用它并编写难以阅读的代码。我怀疑这个下划线会成为一个问题,就像添加额外空白的自由是一个问题一样。

当您想要使用它时,最好的例子是二进制数,习惯上在每 4 位之间放置一个空格。例如,比较:

int bitField = 0b110111011111; 
int bitField2= 0b1101_1101_1111; //clearly more readable.

其他示例可能包括Oracle 的此功能文档中给出的信用卡号或 SSN 。

于 2013-08-28T06:17:56.350 回答