天天看點

Java中String/StringBuffer/StringBuilder比較

運作速度比較:StringBuilder > StringBuffer > String

String是對字元串常量操作(String是final class),StringBuilder與StringBuffer是對字元串變量操作

Java中對String對象的操作實際上是不斷建立新的對象并且将舊的對象回收的過程,是以執行速度慢。

而StringBuilder和StringBuffer是直接對變量對象進行修改,不進行建立和回收操作,是以速度比String快很多。

線程安全上,StringBuilder是非線程安全的,StringBuffer是線程安全的,在StringBuffer中很多方法帶有synchronized關鍵字,而StringBuilder沒有,是以StringBuilder運作速度比StringBuffer快,但如果在多線程環境中,用StringBuffer比較安全。

總之:

String适用于字元串操作比較少的情況

StringBuilder适用于單線程大量字元串操作的情況

StringBuffer适用于多線程大量字元串操作的情況