JAVA的 StringBuffer类

StringBuffer

优势:
字符序列可变(字符串缓冲区)
即:增删改,在当前字符的对象上变化,不会浪费过多空间

构造方法

StringBuffer()默认是16个字符
StringBuffer(int size)size个字符
StringBuffer(String s)默认是max(16,s.length() );

容量不足时,系统自动维护。
维护规则: MAX(字符新长度,原容量*2+2)

常用方法

增删改查

//增加
StringBuffer append(... ...);//追加数据
StirngBuffer inser(int index,... .. );//将数据插入到指定的位置
//删除
StringBuffer deliete(int startindex ,int endindex);//从当前对象字符串中删除一段字符串
StringBuffer deleteCharAt(int index);//删除指定位置的字符
//修改
StringBuffer replace(int startIndex,int endIndex,String str)//c把当前对象中的一个字符串替换成指定的字符串
void setCharAt(int index,char ch)//将指定位置的字符替换成ch
//查询
getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)//将字符从次序列复制到目标字符数组dst
indexOf
lastIndexOf
substring

其他

reverse();//反转
trimToSize();//将缓存区容量改为当前字符串的容量
toString();

与String的转换

//StringBuffer->String
String (StringBuffer buffer);//构造方法
toString();//方法
//String->StringBuffer
StringBuffer(String str);/构造方法

与StringBuilder比较

相同:
2个类拥有相同的构造方法和成员方法
区别:

  • StringBuffer类将字符串缓冲区安全的用于 多个线程(线程安全)。为了保证线程安全,系统开销不比较大。
  • StringBuilder类的对象不具有线程安全性,对字符串的操作执行速度快。
上一篇:Java包装类、String类、StringBuffer类和StringBulid类方法


下一篇:StringBuffer源码分析之 append 方法