2

对于以下代码,我应该在静态方法中使用哪个类,StringBuilder或者StringBuffer?基于 API,StringBuffer是线程安全的,但StringBuilder不是。

public static String getString(int[] arrs) {
    StringBuilder sb = new StringBuilder();  //1
    StringBuffer sb = new StringBuffer();    //2
    for (int i : arrs) {
        sb.append(i);
    }
    return sb.toString();
}
4

4 回答 4

6

这是一个方法局部变量,你不会在那里并发访问......所以使用 StringBuilder

于 2013-05-21T14:39:24.043 回答
2

作为一般的经验法则,如果它是一个局部变量并且没有分发给另一个线程,则不需要任何线程保护。您的 StringBuilder 对该方法完全是本地的。

于 2013-05-21T14:40:18.103 回答
2

为什么要担心您展示的代码的线程安全?如果您的 StringBuilder 没有以需要担心线程安全的方式使用,那么不要不必要地花费它所需的开销。使用字符串生成器。

于 2013-05-21T14:38:53.820 回答
0

使用 StringBuilder 因为有局部变量方法

于 2015-07-02T09:35:57.340 回答