StringBuffer和StringBuilder
2015-08-24 20:39
453 查看
API文档:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
官方文档说明:
从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即
[/code][/code]
[/code]
总结:
1. StringBuffer 是线程同步; StringBuilder 是线程不同步。多线程不安全。
开发建议使用StringBuilder。
2. 二者的特点:
长度是可变化的。
可以直接操作多个数据类型。
最终会通过toString方法变成字符串。
3. 方法:
官方文档说明:
public final class StringBuffer 线程安全的可变字符序列。一个类似于 [code]String的字符串缓冲区,但不能修改。 可将字符串缓冲区安全地用于多个线程。
从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即
StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
[/code][/code]
public final class StringBuilder 一个可变的字符序列。此类提供一个与 [code]StringBuffer兼容的 API,但不保证同步。该类被设计用作
StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比
StringBuffer要快。
[/code]
总结:
1. StringBuffer 是线程同步; StringBuilder 是线程不同步。多线程不安全。
开发建议使用StringBuilder。
2. 二者的特点:
长度是可变化的。
可以直接操作多个数据类型。
最终会通过toString方法变成字符串。
3. 方法:
* 1. 存储 StringBuffer append(); 将指定的数据作为参数添加到末尾 * insert(int offset, 数据); 可以将数据插入到指定offset位置 * * 2. 删除 * delete(start, end); 删除缓冲区中的数据,包含start不包含end * deleteCharAt(index); 删除指定位置index的数据。 * * 3. 获取 * charAt(index) * indexOf(数据); * lastIndexOf(数据); * String substring(start, end); * * 4. 修改 * replace(); * void setCharAt(index); * * 5. 反转 * reverse(); * * 6. 将缓冲区的指定数据存储到指定字符数组中。 * void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);
相关文章推荐
- insert语句太长用StringBuilder优化一下
- C#中StringBuilder类的使用总结
- JAVA中StringBuffer与String的区别解析
- js 效率组装字符串 StringBuffer
- Java之String、StringBuffer、StringBuilder的区别分析
- C#中StringBuilder用法以及和String的区别分析
- JavaScript实现Java中StringBuffer的方法
- Java中StringBuffer和StringBuilder区别
- Java中的StringBuilder性能测试
- Java中String、StringBuffer、StringBuilder的区别介绍
- java_String和StringBuffer区别分析
- 深入解析StringBuffer和StringBuilder的区别
- String、StringBuilder、StringBuffer的区别
- 关于String与StringBuilder的提问与总结
- Java中String,StringBuffer,StringBuilder的区别
- java学习第10天
- 简述String与StringBuffer的区别:
- JAVA面试题总结(SE部分)
- JAVA源码之StringBuffer扩容机制
- Android UI之自定义SeekBar