StringBuffer的方法都加了synchronized关键字,所以是线程安全的,而StringBuilder是线程不安全的。
看一个方法append:
StringBuffer的
@Override
public synchronized StringBuffer append(char[] str) {
toStringCache = null;
super.append(str);
return this;
}
StringBuilder的
@Override
public StringBuilder append(char[] str) {
super.append(str);
return this;
}