Stringbuffer和Stringbuilder
2016-04-24 14:45
357 查看
应要求在这里写写Stringbuffer和Stringbuilder的区别,本人学习的时间不长,希望指点,那么开始把:
Stringbuffer:
可改变的Unicode字符序列。允许并发操作,是线程安全的,String类在进行字符串连接时会显得效率很低,就是因为它所产生的对象的属性是不能更改的,当连接字符串时也就只能创建新的对象,对于很多字符串连接时,应当使用Stringbuffer类,使用这个类的对象来进行字符串连接时就不会有多余的中间对象产生,从而优化了效率。
例:String str="A"+"B"+"C"+"D"; 产生:"AB" 、"ABC"、 "ABCD" 产生AB、ABC明显是多余对象,浪费空间。然而用Stringbuff追加就不会产生这种现象。
Stringbuilder:
可改变的Unicode字符序列。操作同Stringbuffer只是不支持并发操作,非线程安全。Stringbuff和Stringbuilder的区别:Stringbuilder支持所有相同的操作,但是它不执行同步,所以速度更快,对于大量数据时Stringbuilder速度快于Stringbuffer;
当我们在字符串缓冲去被多个线程使用时,JVM不能保证Stringbuilder的操作是安全的,虽然它速度快,但是可以保证Stringbuffer是可以正确操作的。大体就是这样的。
Stringbuffer:
可改变的Unicode字符序列。允许并发操作,是线程安全的,String类在进行字符串连接时会显得效率很低,就是因为它所产生的对象的属性是不能更改的,当连接字符串时也就只能创建新的对象,对于很多字符串连接时,应当使用Stringbuffer类,使用这个类的对象来进行字符串连接时就不会有多余的中间对象产生,从而优化了效率。
例:String str="A"+"B"+"C"+"D"; 产生:"AB" 、"ABC"、 "ABCD" 产生AB、ABC明显是多余对象,浪费空间。然而用Stringbuff追加就不会产生这种现象。
Stringbuilder:
可改变的Unicode字符序列。操作同Stringbuffer只是不支持并发操作,非线程安全。Stringbuff和Stringbuilder的区别:Stringbuilder支持所有相同的操作,但是它不执行同步,所以速度更快,对于大量数据时Stringbuilder速度快于Stringbuffer;
当我们在字符串缓冲去被多个线程使用时,JVM不能保证Stringbuilder的操作是安全的,虽然它速度快,但是可以保证Stringbuffer是可以正确操作的。大体就是这样的。
相关文章推荐
- insert语句太长用StringBuilder优化一下
- js实现C#的StringBuilder效果完整实例
- C#中StringBuilder类的使用总结
- JAVA中StringBuffer与String的区别解析
- js 效率组装字符串 StringBuffer
- Java之String、StringBuffer、StringBuilder的区别分析
- C#中StringBuilder用法以及和String的区别分析
- 浅谈java中String与StringBuffer的不同
- JavaScript实现Java中StringBuffer的方法
- 详解Java中StringBuffer类常用方法
- Java中StringBuffer和StringBuilder区别
- Java中的StringBuilder性能测试
- Java中String、StringBuffer、StringBuilder的区别介绍
- java_String和StringBuffer区别分析
- Java StringBuilder和StringBuffer源码分析
- 深入解析StringBuffer和StringBuilder的区别
- 简述String与StringBuffer的区别:
- JAVA面试题总结(SE部分)
- JAVA源码之StringBuffer扩容机制
- String-vs-StringBuilder-vs-StringBuffer