StringBuffer和StringBuilder的区别

1.在执行速度方面的比较,StringBuilder>StringBuffer

2.在线程安全方面的比较,StringBuilder线程不安全,StringBuffer线程安全。

3.两者都是字符串变量,是可改变的对象,每当我们用它们对字符串操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。

2018.02.26更新------------------------------------------------------------------------------------------------

解释一下第三条:

1.String类型,是java内的对象,是不可改变的对象,当每次对String进行改变时,都需要生成一个新的String对象,然后将指针指向一个新的对象,如果在一个循环里,不断的改变一个对象,就要不断的生成新的对象,如果对象多了,java的垃圾自动回收机制会开始工作了,所以效率很低,建议在不断更改String对象的地方不要使用String类型。

2.StringBuffer是个可变的对象,就是每次操作都是对对象本身进行操作,而不用生成新的对象,这样效率就会有很大的提高,在大部分情况下StringBuffer的效率要比String类型更高


总结:

如果要操作少量的数据用 String

单线程操作字符串缓冲区下操作大量数据用 StringBuilder

多线程操作字符串缓冲区下操作大量数据用 StringBuffer

你可能感兴趣的:(StringBuffer和StringBuilder的区别)