哪个类用于此静态方法,StringBuffer或StringBuilder?

时间:2013-05-21 14:37:40

标签: java multithreading stringbuilder stringbuffer

对于以下代码,我应该在静态方法中使用哪个类StringBuilderStringBuffer?基于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 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:2)

为什么用您显示的代码担心线程安全?如果没有以一种需要担心线程安全的方式使用StringBuilder,那么就不必花费不必要的开销。使用StringBuilder。

答案 2 :(得分:2)

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

答案 3 :(得分:0)

使用StringBuilder,因为有loacal变量方法