String、StringBuffer、StringBuilder區別


原創轉載請注明出處:https://www.cnblogs.com/agilestyle/p/11444066.html

 

String

String是Java語言非常基礎和重要的類,提供了構造和管理字符串的各種基本邏輯。它是典型的Immutable類,被聲明成為final class,所有屬性也都是final的。也由於它的不可變性,類似拼接、裁剪字符串等動作,都會產生新的String對象。由於字符串操作的普遍性,所以相關操作的效率往往對應用性能有明顯影響。

PS. String Pool

 

StringBuffer

StringBuffer是為解決上面提到拼接產生太多中間對象的問題而提供的一個類,我們可以用append或者add方法,把字符串添加到已有序列的末尾或者指定位置。StringBuffer本質是一個線程安全的可修改字符序列,它保證了線程安全,也隨之帶來了額外的性能開銷,所以除非有線程安全的需要,不然還是推薦使用它的后繼者,也就是StringBuilder。

 

StringBuilder

StringBuilder是Java 1.5中新增的,在能力上和StringBuffer沒有本質區別,但是它去掉了線程安全的部分,有效減小了開銷,是絕大部分情況下進行字符串拼接的首選。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM