简单从以下四方面来说其实很简单:
线程安全性:
线程安全 String 、StringBuffer
非线程安全 StringBuilder
执行效率:
StringBuilder > StringBuffer > String
存储空间:
String 的值是不可变的,每次对String的操作都会生成新的String对象,
效率低耗费大量内存空间,从而引起GC(垃圾回收机制)。
StringBuffer和StringBuilder都是可变。
使用场景:
1如果要操作少量的数据用 String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
来源:https://blog.csdn.net/mateng52/article/details/100982746