String,StringBuffer,StringBuilder三者的区别

相同点:

String,StringBuffer,StringBuilder,都是final类,不允许被继承,在本质上都是字符数组,

不同点:

1.String的长度是不可变的而后两者长度可变,在进行连接操作时,String每次返回一个新的String实例,而StringBuffer和StringBuilder的append方法直接返回this,所以当进行大量的字符串连接操作时,不推荐使用String,因为它会产生大量的中间String对象。

2.StringBuffer和StringBuilder的一个区别是,StringBuffer在append方法前增加了一个synchronized修饰符,以起到同步的作用,为此也降低了执行效率;若要在toString方法中使用循环,使用StringBuilder。

3.String是字符串常量

      Stringbuffer是字符串变量

      Stringbuilder是字符串变量

4.

StringBuilder与StringBuffer

      StringBuilder:线程非安全的

      StringBuffer:线程安全的

5、对于三者的总结:1)如果操作少量的数据用String

                                    2)单线程下操作大量的数据用StringBuilder

                                    3)多线程下操作大量的数据用StringBuffer

原文地址:https://www.cnblogs.com/chendezhen/p/8575152.html