一、String
String由于是不可變類,所以線程安全。
二、StringBuffer以及StringBuilder
先看StringBuffer和StringBuilder的關(guān)系圖:

image.png
StringBuffer和StringBuilder都是繼承AbstractStringBuilder類,AbstractStringBuilder已經(jīng)實(shí)現(xiàn)了大量通用方法:

image.png
對(duì)比StringBuilder的append方法已經(jīng)StringBuffer的append方法:
@Override
public StringBuilder append(CharSequence s, int start, int end) {
super.append(s, start, end);
return this;
}
@Override
public synchronized StringBuffer append(CharSequence s, int start, int end)
{
toStringCache = null;
super.append(s, start, end);
return this;
}
區(qū)別只是一個(gè)在方法前加了synchronized,一個(gè)沒(méi)有,所以StringBuffer是線程安全,StringBuilder是線程非安全。