Java中String、StringBuilder和StringBuffer的區(qū)別

談?wù)勛约簩ava中String、StringBuilder和StringBuffer知識點的理解,也算是對自己學習的記錄和總結(jié)吧。

  • String字符串常量
  • StringBuffer字符串變量(線程安全)
  • StringBuilder字符串變量(非線程安全)
String

所謂常量,即該對象的值已經(jīng)被賦予了,不能再更改。若非要更改,則只能再重新創(chuàng)建另一個對象,在這個新創(chuàng)建的對象上再進行賦值。因此,每次在對String類型的對象進行改變的時候其實都等同于生成了一個新的String對象,然后將指針指向新的String對象,所以經(jīng)常改變內(nèi)容的字符串最好不要用String,因為每次生成對象都會對系統(tǒng)性能產(chǎn)生影響,特別當內(nèi)存中無引用對象多了以后,JVM的GC就會開始工作,那速度是一定會相當慢的。

StringBuffer

所謂變量,即是可以隨時變化的量。如果對StringBuffer對象進行改變,每次結(jié)果都會對StringBuffer對象進行操作,而不是生成新的對象。所以一般字符串要經(jīng)常變化的話使用StringBuffer。

StringBuilder

StringBuilder和StringBuffer類功能基本相似,方法也差不多,主要區(qū)別在于StringBuffer類的方法是多線程安全的,而StringBuilder不是線程安全的,相比而言StringBuilder類會略微快一點。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容