主要区别体现在 速度 & 线程安全
1、速度:StringBuilder > StringBuffer > String
原因:String是字符串常量,有final修饰,不能别继承,不能被修改;StringBuilder 和 StringBuffer 字符串变量,对象创建可修改
2、线程安全:StringBuilder线程不安全,StringBuffer线程安全
StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程是安全的;
StringBuilder的方法则没有该关键字,所以不能保证线程安全
总结:
String:适用于少量字符串操作的情况
StringBuilder: 适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer: 适用于在多线程下在字符缓冲区进行大量操作的情况