今天我们来认识一下StringBuffer
StringBuffer
StringBuffer类概述
线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
也就是说StringBuffer和StringBulider的方法是一样的~咱们就只演示一个了哈~
StringBuffer类的构造方法
public StringBuffer()
构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
public StringBuffer(int capacity)
指定容量的字符串缓冲区对象
public StringBuffer(String str)
指定字符串内容的字符串缓冲区对象
StringBuffer的方法
public int capacity()
返回当前容量。 理论值
public int length()
返回长度(字符数)。 实际值
StringBuffer的添加功能
public StringBuffer append(String str)
可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
public StringBuffer insert (int offset,String str)
在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
StringBuffer的删除功能
public StringBuffer deleteCharAt (int index)
删除指定位置的字符,并返回本身
public StringBuffer delete(int start,int end)
删除从指定位置开始指定位置结束的内容,并返回本身
StringBuffer的替换和反转功能
public StringBuffer replace(int start,int end,String str)
从start开始到end用str替换
public StringBuffer reverse()
字符串反转
StringBuffer的截取功能
public String substring(int start)
从指定位置截取到末尾
public String substring(int start,int end)
截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
注意:返回值类型不再是StringBuffer本身
String StringBuffer 和 StringBuilder 的区别
这是一道面试题哦~
1)StringBuffer 和 StringBuilder 的区别
StringBuffer是jdk1.0版本的,是线程安全的,效率低
StringBuilder是jdk1.5版本的,是线程不安全的,效率高
2)String和StringBuffer,StringBuilder的区别
String是一个不可变的字符序列
StringBuffer,StringBuilder是可变的字符序列