區別維度: 1. 可變性 a. String用final修飾,不可變 b. Stringbuilder和StringBuffer均繼承抽象父類AbstractStringBuilder,其中也是用char[]數組儲存字元串,但無final修飾 2. 線程安全性:源碼中StringBuilder和St ...
區別維度:
1. 可變性
a. String用final修飾,不可變
b. Stringbuilder和StringBuffer均繼承抽象父類AbstractStringBuilder,其中也是用char[]數組儲存字元串,但無final修飾
2. 線程安全性:源碼中StringBuilder和StringBuffer都是調用父類的方法
a. StringBuffer在調用的方法上加上鎖,保證了線程安全
b.性能: StringBuilder僅在性能上提升10-20%,但犧牲了安全
3. 適用場景:
a. 少量數據:String
b. 單線程操作大量數據:StringBuilder
c. 多線程操作大量數據:StringBuffer