A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

String,Stringbuffer和Stringbuilder他们谁组合字符串的速度更快,这个有点晕?有大神解答一下吗?

9 个回复

倒序浏览
1289109595 来自手机 初级黑马 2016-9-6 18:00:10
沙发
Stringbuilder线程不安全
回复 使用道具 举报
效率高的线程不安全(Stringbuilder)
效率低的反而线程安全(Stringbuffer)
非要比速度的话,个人觉得连接符   +  最快
Stringbuffer和Stringbuilder操作的时候,需要创建对象.多少会影响效率吧
回复 使用道具 举报
String拼接会产生很多新的字符串,占用内存,后面两个不会产生新的字符串,拼接完成后,可以通过toString方法转回字符串。Stringbuffer线程安全 和Stringbuilder线程不安全,不安全的效率高,速度快~
回复 使用道具 举报
String一旦创建了对象就不可变,它的对象是在内存中的常量池的;
回复 使用道具 举报
Stringbulider不安全,但更快
回复 使用道具 举报
刚才想换行的,结果一下子就回复了。
String一旦创建了对象就不可变,它的对象是在内存中的常量池的,用它每次组合字符串都会创建新的对象,并且使用StringBuilder或者StringBuffer的append方法实现,所以它是最慢的;
StringBuffer组合字符串的时候只需要创建一次对象就可以了,因为它的对象是可变的,但是它是线程安全的,所以效率低;
StringBuilder组合字符串的时候也是只要创建一次对象就可以了,它的对象也是可变的,而它相对于StringBuffer来说是线程不安全的,效率高;
综上所述,String,StringBuffer和StringBuilder组合字符串的效率从高到低是:StringBuillder > StringBuffer > String
回复 使用道具 举报
String 是不可变的字符串,Stringbuffer和StringBuilder是可变的字符序列  ;Stringbuffer是线程安全的,效率低,Stringbuilder是线程不安全的,效率高
回复 使用道具 举报
个人觉得还是用String + 连接组合最好
回复 使用道具 举报
当然是stringbuffer快,但是线程不安全
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马