三个类的区别主要在运行速度和线程安全两方面。
1.运行速度或执行速度
StringBuilder>StringBuffer>String
原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的(更改过程陷入了一次次对象的创建、销毁中),但后两者的对象是变量,是可以更改的。
2.线程安全
StringBuffer是线程安全的(它的很多方法都带有synchronized关键字),而StringBuilder是线程不安全的。
3.总结
String:适用于少量的字符串操作。
StringBuilder:单线程字符缓冲区的大量操作。
StringBuffer:多线程字符缓冲区的大量操作。
参考: