总结为:
String:不可变字符串;
StringBuffer:可变字符串、效率低、线程安全;
StringBuilder:可变字符序列、效率高、线程不安全;
三者执行速度比较:StringBuilder > StringBuffer > String
String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间,所以经常改变内容的字符串最好不要用 String
多线程操作字符串缓冲区下操作大量数据 StringBuffer
单线程操作字符串缓冲区下操作大量数据 StringBuilder
学习参考:
https://blog.csdn.net/rmn190/article/details/1492013?utm_source=copy