一尘不染

何时在Java中使用StringBuilder

java

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

我的意思是:创建StringBuilder对象,调用append()方法并最终toString()已经很小,然后将现有字符串与+运算符连接成两个字符串的开销是小的,还是建议仅用于两个以上的字符串?

如果有这样的阈值,它取决于什么(也许是字符串长度,但以哪种方式)?

最后,你是否会以+级联的可读性和简洁性为代价,StringBuilder以较小的情况(例如两个,三个或四个字符串)的性能为代价?

StringBuilder在过时的Java优化技巧以及Java都市神话中,都提到过对常规连接进行显式使用是过时的。


阅读 526

收藏
2020-03-01

共1个答案

一尘不染

如果你在循环中使用String串联,则类似这样,

String s = "";
for (int i = 0; i < 100; i++) {
    s += ", " + i;
}

那么你应该使用StringBuilder(而不是StringBuffer)而不是String,因为它速度更快并且消耗的内存更少。

如果你只有一条语句,


String s = "1, " + "2, " + "3, " + "4, " ...;

那么你可以使用Strings,因为编译器会StringBuilder自动使用。

2020-03-01