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