码迷,mamicode.com
首页 > 编程语言 > 详细

java中的String、StringBuffer、StringBuilder的区别

时间:2017-07-22 11:03:22      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:line   拼接   size   频繁   str   ring   append   可变   indexof   

String、StringBuffer、StringBuilder都是java中的常用字符串类 ,下面来看看三者之间的异同。

 一、可变与不可变:

      String:字符串常量,不可变。StringBuffer、StringBuilder为可变字符序列,是可变的。

 二、是否多线程安全:

  String中的对象是不可变的,相当于常量,显然线程安全

  StringBuffer:支持多线程安全。

  StringBuilder:不支持多线程安全

  

 三、执行效率:

  String、StringBuffer、StringBuilder用于字符串拼接:String str1="asdfgh";   String str2="lkjhdsa";

  方法一、

    使用String:String str3=str1+str2;  效率最低

  方法二、

    使用StringBuffer::str1.append(str2); //使用StringBuiffer的append()方法进行追加。  效率较高(由于其需要实现线程安全,故效率比StringBuilder低。)

  方法三、

    使用StringBuilder:str1.append(str2); //使用StringBuilder的append()方法进行追加。  效率最高 。(不用考虑线程安全问题,故执行效率最高)

 

 总结:

    一、如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。

    二、不要使用String类的"+"来进行频繁的拼接,因为那样的性能极差的,应该使用StringBuffer或StringBuilder类。

 

 

 注:StringBuilder和StringBuffer都具有如下方法显示对字符串的增、删、改、查功能。

  增:insert();

  删:delete();

  改:replace();

  查:indexOf();

  其具体用法可以参考java API文档。

java中的String、StringBuffer、StringBuilder的区别

标签:line   拼接   size   频繁   str   ring   append   可变   indexof   

原文地址:http://www.cnblogs.com/sheepych/p/7220390.html

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