String ,StringBuffer ,StringBulider效率和区别

原创 2012年03月22日 13:31:22

1,对于String来说,相对于其他两者来说是慢很多的,并且产生比较多的垃圾,这是很多好的程序都不想得到的结果。因为产生垃圾之后,GC会在一定的条件情况下出来进行垃圾清理,从而拖慢速度。但万事说有特殊性的,假如说某些情况下使用它,速度不比其它两个要慢:例如 

String str = "a"+"b";	

另一种情况是:

StringBuilder sb1 = new StringBuilder("a"); 
StringBuilder sb2 = new StringBuilder("b"); 
sb1 = sb1.append(sb2);

这样的话,str速度不比其实两个慢;

String总的来说是比较慢的原因是:要是String str 赋一个新的值,str的地址会指向新的值,例如:

String str = "a";
str = "b";

开始时,str指向a的地址,后来赋值以后,str指向b的地址,所以会产生垃圾,如果经常要变化str的值,这样会产生很多垃圾对象;

2.StringBuffer和StringBuilder相比string要快的是因为:这两者支持可变操作,即一个对象可以对自己进行操作,不必指向新的对象;

然而StringBuffer和StringBuilder的区别在于,前者是线程安全,支持多线程;后者是前者的单线程的一个等价类,线程不安全。

如果需要经常修改内容的话,则使用StringBuilder,再根据线程需要选择StringBuffer或者StringBuilder.

知识有误处请指出,欢迎拍砖。

版权声明:本文为博主原创文章,未经博主允许不得转载。

String,StringBuffer与StringBulider三者的区别

我们都只到String和StringBuffer的区别,即String是不可拓展的,即String如果要实现A字符串+B字符串的效果,则不能直接把B接在A后面,而必须新开一个C,然后把A+B放进C.而...
  • zcxwww
  • zcxwww
  • 2016年05月27日 23:28
  • 532

String StringBuilder StringBuffer 对比 总结得非常好

转自:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论。还是觉得有必要让这个讨厌又很可爱的Stri...
  • clam_clam
  • clam_clam
  • 2011年09月28日 19:00
  • 33214

java中常见面试题String,StringBuffer,StringBulider 的区别及相应的使用方法介绍

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。 字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为String 对...
  • wangchong199358
  • wangchong199358
  • 2013年09月16日 20:01
  • 1072

面试必备:String,StringBuffer,StringBuilder区别

首先说一下,这三个类都是用来处理字符串的, StringBuilder是JavaSE5之后引入的,用来替代StringBuffer, StringBuffer相对于StringBuilder线...
  • zrf1335348191
  • zrf1335348191
  • 2016年01月30日 10:21
  • 1006

String、StringBuffer、StringBuilder的区别与效率比较

String 是不可变的,StringBuffer、StringBuilder是可变的 String 、StringBuffer是线程安全的,StringBuilder是线程不安全的 (StringB...
  • u010002184
  • u010002184
  • 2017年05月18日 15:15
  • 416

11 为什么会有String,StringBuffer,StringBuilder及区别?耗时比较

- String是不可变的字符序列。 - StringBuffer是线程安全的,可变的字符序列,效率比String高。 - StringBuilder是线程不安全的,可变的字符序列,效率比Stri...
  • w83325887
  • w83325887
  • 2016年08月11日 09:48
  • 470

String/StringBuffer/StringBuilder详细对比

众所周知,String是由字符组成的串,在程序中使用频率很高。Java中的String是一个类,而并非基本数据类型。 不过她却不是普通的类哦!!!   【镜头1】 String对象的创建 ...
  • ls5718
  • ls5718
  • 2016年07月13日 16:12
  • 710

StringBuilder的用法及String,StringBuffer与StringBuilder的区别

声明:本文大部分内容为参考别人的,自己简单汇总整理了一下。String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)简要的说,...
  • u011489043
  • u011489043
  • 2017年03月30日 15:33
  • 541

StringBuffer和String效率比较

最近,在写后台SQL语句的时候用到了StringBuffer类,处于好奇,学习了一下网上各大博客的见解,仔细了解了String、StringBuffer、StringBuilder之前的用法、区别以及...
  • Thinkingcao
  • Thinkingcao
  • 2017年04月19日 16:04
  • 516

String,StringBuffer,StringBuilder的效率问题

在查看同事写的代码时发现一个问题,拼写sql语句的时候每个人的习惯很不一样,有用String直接拼接的,有用StringBuffer来append的,有用StringBuilder来append的。那...
  • nrs12345
  • nrs12345
  • 2014年01月17日 13:47
  • 4099
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:String ,StringBuffer ,StringBulider效率和区别
举报原因:
原因补充:

(最多只允许输入30个字)