首页 > 其他 > 详细

String StringBuilder StringBuffer的区别

时间:2015-10-12 14:16:56      阅读:257      评论:0      收藏:0      [点我收藏+]

1.String是final类型的不可以被继承是不可变的

  StringBuffer、StringBuilder是可以变的

2.速度 StringBuilder>StringBuffer>String

  StringBuffer是线程安全的

  StringBuidler是线程非安全的

String s1 = This is only a+ simple+ test;
StringBuffer Sb = new StringBuilder(This is only a).append(simple).append(test);

Java Compiler直接把上述第一条语句编译为:
String s2 = This is only a;  
String s3 = simple;  
String s4 = test;  
String s1 = s2 + s3 + s4;

3.使用策略

  1)少量数据操作可以String;单线程操作用SringBuilder;多线程操作用StringBuffer

  2)不要使用String的“+”来拼接,这样的性能很差;应该用下面的第二种:

String result = "";  
for (String s : hugeArray) {  
    result = result + s;  
}  
  
  
StringBuilder sb = new StringBuilder();  
for (String s : hugeArray) {  
    sb.append(s);  
}  
String result = sb.toString();

 3)StringBuffer用在全局变量中;StringBuilder用在方法内部中

 3)一般情况下直接用Stringbuffer,因为builder的性能最多提高10%-15%,除非确认不是运行在多线程下并且性能瓶颈是在buffer上。

String StringBuilder StringBuffer的区别

原文:http://www.cnblogs.com/zhengtu2015/p/4871259.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!