String.valueOf(i)vs“”+ i或i +“”

时间:2011-08-20 09:45:44

标签: java string numbers integer numeric

我通常使用"" + i方便。但是比较一下我自己的表现,我认为String.valueOf(i)会更快。这样对吗?我应该使用哪一个?

更新:我已经阅读了你的答案,这是我能说的:
- 如果代码在递归块中,只有很小的性能差异会变大。
- 你没有告诉我这两种情况的主要和基本缺点/优点究竟是什么。

3 个答案:

答案 0 :(得分:4)

我认为你不会看到任何可衡量的差异。这似乎是通常所说的微观(过早?)优化,很少是一个好主意。

选择您和您的同事最容易阅读的方法。

答案 1 :(得分:3)

选择最佳效果。然后,在优化任何内容之前分析您的应用程序。

始终首先进行配置(例如,使用VisualVM,因为您使用Java进行编码)。

有很多关于分析和优化的资源。我遇到的最新好读是Step by Step Optimisation by Tony Albrecht

如果性能确实变得至关重要,请考虑切换到StringBuilder

编辑:

你的问题没有直接回答。针对String.valueOf(i)i + ""的效果进行微观基准评估几乎没有价值。真正的答案来自对您的应用程序进行基准测试:它自身的复杂性和内存访问模式决定了这一切。

这些不是我的想法,但我正在购买它们:stop programming like it's 1975big O notation needs an update

答案 2 :(得分:1)

我会用

Integer.toString( i )

如果i是整数,因为它可能使用内部缓存来获得更好的性能。

虽然差异很小