StringBuilders有什么好处?

Jam*_*han 2 java

可能重复:
String中的StringBuilder与字符串串联在toString()中

为什么StringBuilders比普通的String Concatenation更好用?

lin*_*ead 8

这些天的java编译器非常聪明,无论如何它都会使用StringBuilder来连接字符串.

这使得以下代码相同

System.out.println("test = "+test+" test2 = "+test2);
System.out.println((new StringBuilder()).append("test =  ").append(test).append("test2 = ").append(test2).toString());
Run Code Online (Sandbox Code Playgroud)

因此,如果你的字符串落在一个可执行行上,你就不应该害怕使用字符串连接.

但是,如果你循环遍历某个数组并将这些字符串连接在一起,那么java运行时将创建所有这些新的StringBuilder,然后将它们连接在一起,因此在这种情况下提供自己的StringBuilder单个实例会更有效

StringBuilder sb = new StringBuilder();
for(String test : testStrings) {
   sb.append(" ").appendtest);   
}
Run Code Online (Sandbox Code Playgroud)

  • "... 这些日子 ..." ?这种优化已经在Java编译器中使用了很长时间.它甚至在JLS第一版中提到过; 请参阅http://java.sun.com/docs/books/jls/first_edition/html/15.doc.html#40226 ...虽然它谈到使用"StringBuffer或类似技术". (3认同)