码迷,mamicode.com
首页 > 其他好文 > 详细

String,StringBuffer,StringBuilder三者的区别

时间:2018-03-15 19:27:03      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:常量   变量   class   允许   单线程   多线程   bsp   字符   方法   

相同点:

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

 

String,StringBuffer,StringBuilder三者的区别

标签:常量   变量   class   允许   单线程   多线程   bsp   字符   方法   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!