點(diǎn): 可變和適用范圍。
String對象是不可變的,而StringBuffer和StringBuilder是可變字符序列。每次對String的操作相當(dāng)于生成一個(gè)新的String對象,而對StringBuffer和StringBuilder的操作是對對象本身的操作,而不會(huì)生成新的對象,所以對于頻繁改變內(nèi)容的字符串避免使用String,因?yàn)轭l繁的生成對象將會(huì)對系統(tǒng)性能產(chǎn)生影響。
第二點(diǎn): 線程安全。
String由于有final修飾,是immutable的,安全性是簡單而純粹的。StringBuilder和StringBuffer的區(qū)別在于StringBuilder不保證同步,也就是說如果需要線程安全需要使用StringBuffer,不需要同步的StringBuilder效率更高。