对于以下代码,我应该在静态方法中使用哪个类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();
}
答案 0 :(得分:6)
它是一个方法局部变量,你不会在那里同时访问...所以使用StringBuilder
答案 1 :(得分:2)
为什么用您显示的代码担心线程安全?如果没有以一种需要担心线程安全的方式使用StringBuilder,那么就不必花费不必要的开销。使用StringBuilder。
答案 2 :(得分:2)
作为一般的经验法则,如果它是一个局部变量并且没有发给另一个线程,则不需要任何线程保护。您的StringBuilder完全是本地方法。
答案 3 :(得分:0)
使用StringBuilder,因为有loacal变量方法