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