共同點:
1 都是字符串相關,底層的實現都是char數組
2 類都是final的,意味着不可以被繼承
區別:
String的value數組是private final的,這意味者他的值是不可以被修改的。而StringBuffer StringBuilder都是繼承AbstractStringBuilder的,他們的value數組都可以通過數組進行修改。在修改之前會檢測數組的大小是否能容納下,如果不能,那麼會進行擴容(這點與ArrayList是一致的,區別在於ArrayList擴容1.5倍,而StringBuilder的大小剛好滿足存放)。
StringBuffer是線程安全的(通過給方法加全局鎖),而StringBuilder是線程不安全的。