如果性能很重要,我应该使用Java的String.format()吗?
我们必须一直为日志输出构建字符串,依此类推。在JDK版本中,我们已经学会了何时使用(许多追加,线程安全)和(许多追加,非线程安全)。StringBuffer
StringBuilder
使用的建议是什么?它是否有效,或者我们是否被迫坚持对性能很重要的单行串联?String.format()
例如丑陋的旧风格,
String s = "What do you get if you multiply " + varSix + " by " + varNine + "?";
与整洁的新样式(String.format,可能更慢),
String s = String.format("What do you get if you multiply %d by %d?", varSix, varNine);
注意:我的具体用例是整个代码中的数百个“单行”日志字符串。它们不涉及循环,因此重量级太重。我对此特别感兴趣。StringBuilder
String.format()