Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java文本中引入下划线是有利还是不利?_Java_Java 7 - Fatal编程技术网

在java文本中引入下划线是有利还是不利?

在java文本中引入下划线是有利还是不利?,java,java-7,Java,Java 7,尽管oracle technotes声明: 在JavaSE7及更高版本中,可以使用任意数量的下划线字符(_) 出现在数字文字中数字之间的任意位置。此功能 例如,使您能够以数字格式分隔数字组 文字,它可以提高代码的可读性 与 float pi = 3.1415F; 但是,开发其他人编写的代码不会让开发人员感到困惑吗? 下划线的使用是否会增加编译器的开销 但是,开发其他人编写的代码不会让开发人员感到困惑吗 除非开发人员不懂Java语言!这个构造已经被支持了足够长的时间,每个Java专业人士都应该

尽管oracle technotes声明:

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

float pi =  3.1415F;
但是,开发其他人编写的代码不会让开发人员感到困惑吗? 下划线的使用是否会增加编译器的开销

但是,开发其他人编写的代码不会让开发人员感到困惑吗

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

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

下划线的使用是否会增加编译器的开销


开销非常小,无法测量。

这里没有性能问题

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

最好的例子是使用二进制数,通常在每4位之间放置一个空格。 例如,比较:

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

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

编译器开销?忽略这里的几个字符,就不会有任何可测量的代价。想想那些已经被忽略的空白,为什么会让人困惑呢?如果你认为它令人困惑。。不要使用它。@Mat它是如何忽略whitspace@Prateek:解析器已删除输入文件中的大部分空格。下划线是在一个不含糊的上下文中添加的,无论额外的周期花费多少,都是完全无关的。至于“令人困惑”或“良好的特性”,这是个人的看法。与几乎所有其他语言构造一样,您需要一些关于如何/何时在代码库中使用它们的指南。例如,如果您经常使用以千/百万为单位的数值常量,则将其用作分组可能是有益的:
3_500
1_500_000
+1同意不需要使用它。只在你认为能让数字更清晰的地方使用。如果编译器以10 MB/s的速度进行解析,那么添加
\uuu
可能会增加大约100纳秒的编译时间。还有很多其他更重要的事情。e、 g.是否对单行嵌套语句使用制表符或空格或
{
int bitField = 0b110111011111; 
int bitField2= 0b1101_1101_1111; //clearly more readable.