我们必须一直为日志输出等构建字符串。在 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()
特别感兴趣。