我通常使用"" + i
方便。但是比较一下我自己的表现,我认为String.valueOf(i)
会更快。这样对吗?我应该使用哪一个?
更新:我已经阅读了你的答案,这是我能说的:
- 如果代码在递归块中,只有很小的性能差异会变大。
- 你没有告诉我这两种情况的主要和基本缺点/优点究竟是什么。
答案 0 :(得分:4)
我认为你不会看到任何可衡量的差异。这似乎是通常所说的微观(过早?)优化,很少是一个好主意。
选择您和您的同事最容易阅读的方法。
答案 1 :(得分:3)
选择最佳效果。然后,在优化任何内容之前分析您的应用程序。
始终首先进行配置(例如,使用VisualVM,因为您使用Java进行编码)。
有很多关于分析和优化的资源。我遇到的最新好读是Step by Step Optimisation by Tony Albrecht。
如果性能确实变得至关重要,请考虑切换到StringBuilder。
编辑:
你的问题没有直接回答。针对String.valueOf(i)
对i + ""
的效果进行微观基准评估几乎没有价值。真正的答案来自对您的应用程序进行基准测试:它自身的复杂性和内存访问模式决定了这一切。
这些不是我的想法,但我正在购买它们:stop programming like it's 1975,big O notation needs an update。
答案 2 :(得分:1)
我会用
Integer.toString( i )
如果i是整数,因为它可能使用内部缓存来获得更好的性能。
虽然差异很小