运行速度比较:StringBuilder > StringBuffer > String
String是对字符串常量操作(String是final class),StringBuilder与StringBuffer是对字符串变量操作
Java中对String对象的操作实际上是不断创建新的对象并且将旧的对象回收的过程,所以执行速度慢。
而StringBuilder和StringBuffer是直接对变量对象进行修改,不进行创建和回收操作,所以速度比String快很多。
线程安全上,StringBuilder是非线程安全的,StringBuffer是线程安全的,在StringBuffer中很多方法带有synchronized关键字,而StringBuilder没有,所以StringBuilder运行速度比StringBuffer快,但如果在多线程环境中,用StringBuffer比较安全。
总之:
String适用于字符串操作比较少的情况
StringBuilder适用于单线程大量字符串操作的情况
StringBuffer适用于多线程大量字符串操作的情况