gpt4 book ai didi

java - 为什么在 Java 中使用 StringBuffer 而不是字符串连接运算符

转载 作者:IT老高 更新时间:2023-10-28 20:25:43 26 4
gpt4 key购买 nike

有人告诉我,在 Java 中使用 StringBuffer 连接字符串比对 String 使用 + 运算符更有效。当你这样做时,引擎盖下会发生什么? StringBuffer 有什么不同?

最佳答案

现在,几乎在所有情况下,最好使用 StringBuilder(它是一个非同步版本;你什么时候并行构建字符串?),但会发生以下情况:

当你对两个字符串使用 + 时,它会编译如下代码:

String third = first + second;

到这样的事情:

StringBuilder builder = new StringBuilder( first );
builder.append( second );
third = builder.toString();

因此,对于一些小例子来说,它通常没有什么区别。但是,当您构建一个复杂的字符串时,您通常需要处理的事情远不止这些;例如,您可能正在使用许多不同的附加语句,或者像这样的循环:

for( String str : strings ) {
out += str;
}

在这种情况下,一个新的 StringBuilder 实例,以及一个新的 String(out 的新值 - Strings 是不可变的)在每次迭代中都是必需的。这是非常浪费的。用单个 StringBuilder 替换它意味着您可以只生成一个 String 而不会用您不关心的 String 填充堆.

关于java - 为什么在 Java 中使用 StringBuffer 而不是字符串连接运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com