相关疑难解决方法(0)

如果性能很重要,我应该使用Java的String.format()吗?

我们必须一直为日志输出构建字符串等等.在JDK版本中,我们学会了何时使用StringBuffer(许多追加,线程安全)和StringBuilder(许多追加,非线程安全).

有什么建议使用String.format()?它是否有效,或者我们是否被迫坚持连接性能很重要的单线?

例如丑陋的旧式,

String s = "What do you get if you multiply " + varSix + " by " + varNine + "?";
Run Code Online (Sandbox Code Playgroud)

与整洁的新风格(可能很慢),

String s = String.format("What do you get if you multiply %d by %d?", varSix, varNine);
Run Code Online (Sandbox Code Playgroud)

注意:我的具体用例是我的代码中的数百个"单行"日志字符串.它们不涉及循环,所以StringBuilder太重量级了.我String.format()特别感兴趣.

java string performance string-formatting micro-optimization

207
推荐指数
8
解决办法
15万
查看次数