String、Stringbuffer和Stringbuilder的区别
2018-03-13 21:41
489 查看
纯属个人总结
1.运行速度方面
由快到慢的排列为StringBuilder > StringBuffer > String
原因:
String为字符串的常量,而StringBuilder和StringBuffer为字符串变量。对象一旦创建是不能够更改的,但是变量是可以的。
String str = "abc";
s =s+1;
说明:我们所看到的就是变量发生了改变,但是实际的情况是没有发生改变。为什么这么说呢?
这实际就是一种假象,jvm是这样解释的,首先创建了变量str,赋值为“abc”,在执行第二段代码的时候,jvm又重新的创建了一个变量str,也就是说,原有的str变量时没有改变的,所以说string是不可改变的对象。也是因为这种机制,每次执行的时候都会创建个新的对象,而原来的对象会被GC回收,因此效率很慢。
但是stringbuilder和stringbuffer就不一样了,它们属于字符串变量,是可以改变的。每当我们对字符串进行操作,实际上是对原有的对象进行操作,
stringBuffer和stringBuilder区别
StringBuilder:线程非安全的StringBuffer:线程安全的
当我们字符串缓冲区被多个多线程使用时候,jvm不能保证stringbuilder的操作是安全的,但是能保证stringbuffer是安全的。但是在多数的情况下,我们使用stringbuilder而不使用stringbuffer的原因就是速度问题。
对于三者使用的总结: 1.如果要操作少量的数据用 = String 2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder<
940b
/p> 3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
1.运行速度方面
由快到慢的排列为StringBuilder > StringBuffer > String
原因:
String为字符串的常量,而StringBuilder和StringBuffer为字符串变量。对象一旦创建是不能够更改的,但是变量是可以的。
String str = "abc";
s =s+1;
说明:我们所看到的就是变量发生了改变,但是实际的情况是没有发生改变。为什么这么说呢?
这实际就是一种假象,jvm是这样解释的,首先创建了变量str,赋值为“abc”,在执行第二段代码的时候,jvm又重新的创建了一个变量str,也就是说,原有的str变量时没有改变的,所以说string是不可改变的对象。也是因为这种机制,每次执行的时候都会创建个新的对象,而原来的对象会被GC回收,因此效率很慢。
但是stringbuilder和stringbuffer就不一样了,它们属于字符串变量,是可以改变的。每当我们对字符串进行操作,实际上是对原有的对象进行操作,
stringBuffer和stringBuilder区别
StringBuilder:线程非安全的StringBuffer:线程安全的
当我们字符串缓冲区被多个多线程使用时候,jvm不能保证stringbuilder的操作是安全的,但是能保证stringbuffer是安全的。但是在多数的情况下,我们使用stringbuilder而不使用stringbuffer的原因就是速度问题。
对于三者使用的总结: 1.如果要操作少量的数据用 = String 2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder<
940b
/p> 3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
相关文章推荐
- String,StringBuffer与StringBuilder的区别??
- String,StringBuffer与StringBuilder的区别
- Java中的String,StringBuilder,StringBuffer三者的区别
- String,StringBuffer与StringBuilder的区别??
- String 、 StringBuilder 、 StringBuffer 的区别
- String,StringBuffer与StringBuilder的区别
- String ,StringBuffer 和 StringBuilder 区别
- Java:String、StringBuffer和StringBuilder的区别
- String,StringBuffer与StringBuilder的区别
- String,StringBuffer与StringBuilder的区别
- String, StringBuffer, StringBuilder的区别
- String、StringBuffer和StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- String,StringBuffer与StringBuilder的区别
- String、StringBuffer和StringBuilder的区别
- String,StringBuffer与StringBuilder的区别
- String,StringBuffer和StringBuilder的区别
- String,StringBuffer与StringBuilder的区别??
- String、StringBuffer与StringBuilder之间区别
- java中string , StringBuffer , StringBuilder 区别