String,StringBuffer和StringBuilder的区别
生活随笔
收集整理的這篇文章主要介紹了
String,StringBuffer和StringBuilder的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、可變性
不同于String類的不可變性,StringBuffer和StringBuilder都繼承了抽象類AbstractStringBuilder,這個類用一個char數組來存儲value。
而String是用final修飾的char數組
二、線程安全
String中的對象是不可變的,也就是常量,所以是線程安全的。StringBuffer也是線程安全,是因為StringBuffer的所有可顯示調用的方法都加了synchronize關鍵字,即同步鎖,而StringBuilder沒有。
三、性能
每次對String對象進行操作的時候,都會生成一個新的String對象,然后將指針指向新的String對象。而StringBuffer和StringBuilder都是對對象本身進行操作。相同情況下使用StringBuilder 相比使用 StringBuffer僅能獲得10%~15%左右的性能提升,但卻要冒多線程不安全的風險。
四、總結
操作少量數據時:用String
單線程操作大量數據時:用StringBuilder
多線程操作大量數據是:用StringBuffer
轉載于:https://www.cnblogs.com/fantasyfc/p/11245908.html
總結
以上是生活随笔為你收集整理的String,StringBuffer和StringBuilder的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈STM32的DMA模块的使用
- 下一篇: IIS6.0打开ASP文件,出现500错