文章引用于
https://www.cnblogs.com/su-feng/p/6659064.html
——————————————————————————————————
这三个类区别主要是在两方面:运行速度、线程安全
1、运行速度
速度上String最慢(速度StringBuilder > StringBuffer > String)
因为String是字符串常量,对象一旦创建不可以被更改。(Java中对String对象进行的操作实际上是:不断创建新对象并回收旧对象的过程,速度很慢)
而StringBuffer、StringBuilder是字符串变量,可以直接改变,所以速度快。
2、线程安全
StringBuilder非线程安全,许多没有synchronize关键字,多用于单线程
StringBuffer线程安全,许多情况下可以带有synchronize关键字,线程安全,多用于多线程
String安全
总之:
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况