我正在尝试在 StringBuilder 中附加多个字符串,
使用
String str1 = "some";
String str2 = "string";
现在,
sb.append(str1).append(str2); // using chained appends
并使用
sb.append(str1 + str2); // using '+' operator
我的 IDE 建议我使用第一种方法,它们在线程安全或类似方面有区别吗?
最佳答案
在底层,编译器用 StringBuilder.append 替换字符串连接,但也有限制。在循环内部,它为每次迭代创建一个新的 StringBuilder,调用 toString 并将其附加到外部 StringBuilder。方法调用也是如此,因为方法调用需要一个值。编译后,您的第二个版本将显示为
sb.append(new StringBuilder().append(str1).append(str2).toString);
这显然不是最佳的,而第一个版本保持不变。
关于java - 使用链式追加和使用多个+连接有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60595405/