1.执行速度比较:
StringBuilder > StringBuffer > String
原因分析:
String:定长字符串
StringBuffer:变长字符串,线程安全的
StringBuilder:变长字符串,线程不安全的
String类时final的,无法改变对象,因此,每当String操作字符串时,实际上就是在不断new新的对象,而原有对象将变为垃圾被GC回收,执行效率较慢
StringBuiler,StringBuffer操作的字符串长度都可改变,可预先分配指定长度的内存块建立一个字符串缓冲区,节省了new对象的时间,因此执行速度比String快
2.使用场景:
1)如果操作少量的数据用 String
2)单线程操作字符串缓冲区下操作大量数据用 StringBuilder
3)多线程操作字符串缓冲区下操作大量数据用StringBuffer