何时在Java中使用StringBuilder[重复]

在Java中,通常最好使用StringBuilder进行字符串连接。总是这样吗

我的意思是:创建一个StringBuilder对象,调用append()方法,最后调用toString()的开销是否已经小于将现有字符串与两个字符串的+操作符连接的开销,还是只建议多(多于两个)字符串

如果有这样一个阈值,它取决于什么(可能是字符串长度,但以何种方式)

最后,您会用+串联的可读性和简洁性来换取StringBuilder在较小的情况下(如两个、三个或四个字符串)的性能吗

在<a href=”中,明确使用StringBuilder进行常规连接被认为是过时的https://stackoverflow.com/questions/4019180/obsolete-java-optimization-tips“>过时的Java优化提示以及爪哇城市神话

如果在循环中使用字符串连接,类似这样的

字符串s=”“;
对于(int i=0;i&lt;100;i++){
s+=“,”+i;
}

然后应该使用StringBuilder(而不是StringBuffer)而不是String,因为它速度更快,占用的内存更少

如果你只有一句话

字符串s=“1”,“2”,“3”,“4”。。。;

然后可以使用Strings,因为编译器将自动使用StringBuilder

发表评论