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 是不可变的对象(为什么?问问 Java 的设计者吧,为什么 String 不是原生类型呢?)因此在每次对 St...

String,StringBuffer,StringBulider的区别

String是固定长度的字符串,如果要发生变化必须重新生成新的实例;String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说...

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

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

String,StringBuffer,StringBulider区别与联系

一张图表明三者区别:代码测试三者效率:@Test public void test3(){ String text = ""; long startTime =...
  • J080624
  • J080624
  • 2016年10月02日 14:01
  • 209

String StringBuffer StringBulider 区别

String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)  简要的说, String 类型和 StringBuffer 类...

黑马程序员-----String,StringBuffer,StringBulider区别

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.String类 java中用String类进行描述。...

Android(java):StringBuffer StringBulider区别

java数组复制 System.copyarray()方法 System.copyarray()方法可以用来复制数组,其格式是: System.arraycopy(Object src, int ...

Java语言基础之String,StringBuffer,StringBulider

就像C++中的String一样,String类型也有这许多相同之处。 String的相关操作:  1字符串长度获取: int length() 方法         2查找字符的位置: int ind...

String,StringBuffer,StringBulider

String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)  简要的说, String 类型和 StringBuffer 类...
  • xu_song
  • xu_song
  • 2012年08月16日 10:02
  • 278

stringbuffer与stringbulider区别

stringbuffer与stringbulider区别: 相信大家看到过很多比较String和StringBuffer区别的文章,也明白这两者的区别,然而自从Java 5.0发布以后,我们...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:String ,StringBuffer ,StringBulider效率和区别
举报原因:
原因补充:

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