![](/img/trans.png)
[英]Difference between Long.toBinaryString() and Long.toString(num, 2)?
[英]Difference between Long.toString(i) vs i + “”
我们经常遇到一个场景,我们需要传递一个原语的String表示,然后我们不经常使用它
WrapperClass.toString() ;
有时我们经常写
i + "";
如果我们检查任何包装器类的toString实现,它每次调用它时都会创建一个新的String对象。 对于原语+“”也是如此(因为运行时的连接将创建新的String对象)
那么它们之间是否有任何区别,或者它们只是将原语转换为String对象的另一种方法;
我个人喜欢String.valueOf(i)
:
"" + i
- 代码表示字符串连接,这根本不是你所追求的。 好的意图。
写i + "";
,你可能会把它留给代码的未来维护者(很可能是你)来弄清楚输出是什么。
WrapperClass.toString();
更明确,虽然更详细,但其意图更清晰。 此外, 弱打字不是你通常在Java中看到的,所以我建议你坚持编写惯用的Java代码。
编译后,发出的字节码很可能是相同或相似的。 在jitting之后和运行时期间,您可以预期差异将被有效地消除。
所以,最后,这是一个风格问题,虽然我建议使用更详细的代码版本。
在功能上,它们是相同的。 不同的是, i + "";
基本上是使用副作用来归档其目的,这可能使初学者更难理解。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.