-
可变性
-
String是不可变的,StringBuffer、StringBuilder是可变的
-
-
线程安全性
-
String是不可变的,所以是线程安全的
-
stringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的
-
stringBuilder并没有对方法进行加同步锁,所以是非线程安全的
-
-
性能
-
StringBuilder是可变的,线程不安全,效率高
-
StringBuffer是可变的,线程安全,效率低
-
-
总结
-
如果开发中需要频繁的针对于字符串进行增、删、改等操作,建议使用StringBuffer或StringBuilder替换String,因为使用String效率低
-
如果开发中,不涉及到线程安全问题,建议使用StringBuilder替换StringBuffer。因为使用StringBuilder效率高
-
操作少量的数据:适用 string
-
单线程操作字符串缓冲区下操作大量数据:适用stringBuilder
-
多线程操作字符串缓冲区下操作大量数据:适用stringBuffer
-