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; }