一、
StringBuilder:线程非安全的
StringBuffer:线程安全的
二、执行速度:
StringBuilder > StringBuffer
三、
StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。
四、使用规则
当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。在使用单线程操作时建议用StringBuilder而不用StringBuffer的,就是速度的原因。
1)较少字符操作使用 String (注意字符串操作 a += i 使用时间小于 a = a+i )
2)单线程操作大量数据StringBuilder
3)多线程操大量数据StringBuffer