String.valueOf(i) 与 "" +我还是我 + ”“

发布于 2024-11-30 16:35:01 字数 103 浏览 0 评论 0 原文

为了方便起见,我通常使用 "" + i 。但我自己比较一下性能,我认为 String.valueOf(i) 会更快。对吗?我应该使用哪一个?

I usually use "" + i for convenient. But compare about perfomance myself, I thought String.valueOf(i) will be faster. Is it right? Which one should I use?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦魇绽荼蘼 2024-12-07 16:35:01

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

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

I don't think you will be able to see any measurable difference. This seems to be what is usually referred to as micro (premature?) optimizations and are seldom a good idea.

Choose the method you and your fellow colleagues find easiest to read.

骷髅 2024-12-07 16:35:01

选择读起来最好的。然后,在优化任何内容之前分析您的应用程序。

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

有很多关于分析和优化的资源。我最新读到的好书是托尼·阿尔布雷希特 (Tony Albrecht) 的逐步优化

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

编辑:

嗯,恕我直言,你的问题没有直接的答案。针对 i + ""String.valueOf(i) 的性能进行微基准测试没有什么价值。真正的答案来自于对应用程序进行基准测试:其自身的复杂性和内存访问模式决定了这一切。

这些不是我的想法,但我相信它们:停止像 1975 年那样编程 , 大 O 表示法需要一个更新

Choose what reads best. Then, profile your application before optimizing anything.

Always profile first (for instance with VisualVM since you're coding in Java).

There are many resources on profiling and optimization. The latest good read I came across is this Step by Step Optimisation by Tony Albrecht.

And if performance really becomes critical, consider switching to StringBuilder.

EDIT:

Well there is no straight answer to your question imho. Micro-benchmarking the performance of String.valueOf(i) against i + "" has little value. The real answer comes from benchmarking your application: its very own complexity and memory access pattern decides it all.

Those are not my ideas but I'm buying them: stop programming like it's 1975, big O notation needs an update.

玻璃人 2024-12-07 16:35:01

如果 i 是整数,我会使用它

Integer.toString( i )

,因为它可能使用内部缓存来获得更好的性能。

不过差异会很小

I would use

Integer.toString( i )

if i is an integer as it might be possible for it to use an internal cache for better performance.

The difference would be small though

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文