stringbuilder和stringbuffer的區別
stringbuilder和stringbuffer的區別
1、線程安全:StringBuffer線程安全,StringBuilder線程不安全。因為StringBuffer的所有公開方法都是synchronized修飾的,而StringBuilder并沒有synchronized修飾。2、緩沖區:StringBuffer每次獲取toString都會直接使用緩存區的toStringCache值來構造一個字符串,StringBuilder則每次都需要復制一次字符數組,再構造一個字符串。所以,StringBuffer對緩存區優化,不過StringBuffer的這個toString方法仍然是同步的。
導讀1、線程安全:StringBuffer線程安全,StringBuilder線程不安全。因為StringBuffer的所有公開方法都是synchronized修飾的,而StringBuilder并沒有synchronized修飾。2、緩沖區:StringBuffer每次獲取toString都會直接使用緩存區的toStringCache值來構造一個字符串,StringBuilder則每次都需要復制一次字符數組,再構造一個字符串。所以,StringBuffer對緩存區優化,不過StringBuffer的這個toString方法仍然是同步的。
![](https://img.51dongshi.com/20241005/wz/18055293752.jpg)
線程安全不同、緩沖區不同、性能不同。1、線程安全:StringBuffer線程安全,StringBuilder線程不安全。因為StringBuffer的所有公開方法都是synchronized修飾的,而StringBuilder并沒有synchronized修飾。2、緩沖區:StringBuffer每次獲取toString都會直接使用緩存區的toStringCache值來構造一個字符串,StringBuilder則每次都需要復制一次字符數組,再構造一個字符串。所以,StringBuffer對緩存區優化,不過StringBuffer的這個toString方法仍然是同步的。3、性能:既然StringBuffer是線程安全的,它的所有公開方法都是同步的,StringBuilder是沒有對方法加鎖同步的,所以,StringBuilder的性能要遠大于StringBuffer。
stringbuilder和stringbuffer的區別
1、線程安全:StringBuffer線程安全,StringBuilder線程不安全。因為StringBuffer的所有公開方法都是synchronized修飾的,而StringBuilder并沒有synchronized修飾。2、緩沖區:StringBuffer每次獲取toString都會直接使用緩存區的toStringCache值來構造一個字符串,StringBuilder則每次都需要復制一次字符數組,再構造一個字符串。所以,StringBuffer對緩存區優化,不過StringBuffer的這個toString方法仍然是同步的。
為你推薦