1. 程式人生 > >經典問題--String、StringBuffer和StringBuilder的區別

經典問題--String、StringBuffer和StringBuilder的區別

String、StringBuffer和StringBuilder的區別

這個問題主要主要從兩個方面去回答
- **速度
- **執行緒安全

String

String字串不斷賦值的過程,JVM處理的處理是:不斷的建立物件和回收物件,所以速度是最慢的;StringBuffer和StringBuilder則不是;
執行緒安全問題: 首先我們要明白什麼是執行緒安全問題,所謂的執行緒安全是我們在進行多執行緒操作和單執行緒操作得到的結果是一樣的;如果得到的結果有所偏差那麼就認定有執行緒安全問題;
StringBuffer是執行緒安全的,StringBuilder非執行緒安全;
原因:


StringBuffer的每個方法都用Sync關鍵字進行同步;所以在進行字元操作的時候都獲取所物件,確保字串不被共享;而StringBuiler則不然;

那麼如何選擇呢?
單執行緒操作適用StringBuiler,多執行緒操作適用StringBuffer。