String:字符串常量,底層實現(xiàn)由final char[] 存儲字符串,由于被final修飾,每次增刪操作都需要創(chuàng)建新的String對象,當(dāng)進行大量字符串操作時,會生成大量無用的對象,導(dǎo)致系統(tǒng)JVM調(diào)用GC機制進行處理,資源浪費
StringBuilder:字符串變量,因為沒有final修飾,只需要創(chuàng)建一個對象,然后對引用的值進行修改即可
StringBuffer:字符串變量,方法和功能與StringBuilder基本一致,但是大多方法有synchronized修飾,導(dǎo)致每次操作前需要進行判斷,效率相對StringBuilder較低,但是線程安全
總結(jié):String 一般用于少量字符串操作,StringBuilder用于單線程下大量字符串操作,StringBuffer用于多線程下大量字符串操作