黑马程序员技术交流社区

标题: String,Stringbuffer和Stringbuilder他们谁组合字符串的速度更快??? [打印本页]

作者: Lws    时间: 2016-9-6 17:58
标题: String,Stringbuffer和Stringbuilder他们谁组合字符串的速度更快???
String,Stringbuffer和Stringbuilder他们谁组合字符串的速度更快,这个有点晕?有大神解答一下吗?
作者: 1289109595    时间: 2016-9-6 18:00
Stringbuilder线程不安全
作者: 孤峰无悔    时间: 2016-9-6 18:39
效率高的线程不安全(Stringbuilder)
效率低的反而线程安全(Stringbuffer)
非要比速度的话,个人觉得连接符   +  最快
Stringbuffer和Stringbuilder操作的时候,需要创建对象.多少会影响效率吧

作者: 冬天有点冷    时间: 2016-9-6 20:26
String拼接会产生很多新的字符串,占用内存,后面两个不会产生新的字符串,拼接完成后,可以通过toString方法转回字符串。Stringbuffer线程安全 和Stringbuilder线程不安全,不安全的效率高,速度快~
作者: cjc147    时间: 2016-9-6 20:42
String一旦创建了对象就不可变,它的对象是在内存中的常量池的;
作者: 648764479    时间: 2016-9-6 20:46
Stringbulider不安全,但更快
作者: cjc147    时间: 2016-9-6 20:47
刚才想换行的,结果一下子就回复了。
String一旦创建了对象就不可变,它的对象是在内存中的常量池的,用它每次组合字符串都会创建新的对象,并且使用StringBuilder或者StringBuffer的append方法实现,所以它是最慢的;
StringBuffer组合字符串的时候只需要创建一次对象就可以了,因为它的对象是可变的,但是它是线程安全的,所以效率低;
StringBuilder组合字符串的时候也是只要创建一次对象就可以了,它的对象也是可变的,而它相对于StringBuffer来说是线程不安全的,效率高;
综上所述,String,StringBuffer和StringBuilder组合字符串的效率从高到低是:StringBuillder > StringBuffer > String
作者: gohw002    时间: 2016-9-6 20:59
String 是不可变的字符串,Stringbuffer和StringBuilder是可变的字符序列  ;Stringbuffer是线程安全的,效率低,Stringbuilder是线程不安全的,效率高
作者: 宝瓶子    时间: 2016-9-6 21:47
个人觉得还是用String + 连接组合最好
作者: 细听风语为梧桐    时间: 2016-9-6 22:51
当然是stringbuffer快,但是线程不安全




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2