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

String StringBuilder StringBuffer的区别

时间:2015-10-12 14:18:17      阅读:128      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!