1,String是字符串类容不可变的,StringBuffer,StringBuilder是字符串类容长度可变的;
2,StringBuffer是同步的,数据安全,效率低的;
3,StringBuilder是不同步的,数据不安全,效率高。
(1),在执行速度方面的比较:StringBuilder>StringBuffer;
(2),StringBuilder与StringBuffer他们是字符串变量,是可以改变的对象,每当我们用他们对字符串做操作时,实际上是在一个对象上操作的,而不象String一样创建一些对象并进行操作,所以他的速度就快;
(3),StringBuilder:线程是非安全的 StringBuffer的额线程是安全的
当我们在字符缓冲去被多个线程使用时,JVM不能保证BufferBuilder的操作是安全的,虽然它的速度快,但是可以保证StringBuufer是可以正确操作的。当然大多数情况下是在单线程下进行的操作,所以大多数情况下建议使用StringBuilder而不使用StringBuffer,就是速度的原因。
对其的总结:
如果操作少量的数据用=String;
单线程操作字符串缓冲区下操作大量数据=StringBuilder;
多线程操作字符串缓冲区下操作大量数据=StringBuffer