StringBuffer和StringBuilder的區別

Jollyzhe發表於2018-12-27

1:StringBuffer、StringBuilder和String一樣,也用來代表字串。String類是被final修飾的不可變類,任何對String的改變都會引發新的String物件的生成;StringBuffer則是可變類,任何對它所指代的字串的改變都不會產生新的物件。

2: HashTable是執行緒安全的,很多方法都是synchronized方法,而HashMap不是執行緒安全的,但其在單執行緒程式中的效能比HashTable要高。

3: StringBuffer和StringBuilder類的區別也是如此,他們的原理和操作基本相同,

區別在於:

StringBuffer支援併發操作,線性安全的,適合多執行緒中使用。

StringBuilder不支援併發操作,線性不安全的,不適合多執行緒中使用。新引入的StringBuilder類不是執行緒安全的,但其在單執行緒中的效能比 StringBuffer高。

4:三者在執行速度方面的比較:StringBuilder > StringBuffer > String

相關文章