如前所述,您不应使用
StringBuilder代替简单的字符串连接表达式,例如
a + " = " +b。后者的键入速度更快,更易于阅读,并且编译器
StringBuilder无论如何都会在内部使用它,因此重写它不会带来性能优势。
但是
StringBuilder,如果要在循环中串联大量字符串,则很有用。以下代码效率低下。它需要O(n 2)时间来运行并创建许多临时字符串。
String result = "";for (int i = 0; i < foo.length; ++i){ result += bar(foo[i]); // Bad}尝试以下方法:
StringBuilder sb = new StringBuilder();for (int i = 0; i < foo.length; ++i){ sb.append(bar(foo[i]));}String result = sb.toString();编译器仅优化简单
a + b + c表达式。它不能自动优化上述代码。



