StringBuffer和StringBuilder
StringBuffer和StringBuilder
StringBuffer和StringBuilder都是可变长度的字符串 我们可以直接对字符串进行追加
String是不可变长度的字符串每一次新的赋值等于重新定义了一遍 效率很低
StringBuffer和StringBuilder的常用方法相同 一般包括追加 删除 插入 修改
用法如下
public class StringBufferDemo {
public static void main(String[] args) {
//可变长度的字符串
//声明
StringBuffer sb=new StringBuffer();
//追加
sb.append("一");
sb.append("二");
sb.append("三");
sb.append("四");
System.out.println(sb);
//删除
System.out.println("开始执行删除");
System.out.println("从开始索引删除到结束索引 左闭右开:"+sb.delete(1, 3));
//插入
System.out.println("插入到该索引位置 第一个参数索引值 第二参数 内容:"+sb.insert(1, "二三"));
//修改
System.out.println("改 从开始索引 到结束索引: "+sb.replace(1, 3, "七八"));
//转换成String
System.out.println("转换成String:"+sb.toString());
}
}
StringBuffer和StringBuilder的区别
StringBuffer和StringBuilder的用法几乎没有差别
主要区别是StringBuffer是线程安全的StringBuilder是非线程安全的
两者的使用一般分情况而言(单线程 多线程)
两者具体的特点区别如下
String类
➥长度不可变的字符串
➥进行拼接操作时,实际上是创建了一个新的字符串来代替原来的字符串,所以进行字符串追加操作效率很低
StringBuffer类
➥线程安全、长度可变的字符串
➥多线程操作时使用较多,进行字符串追加效率较高
StringBuilder类
➥线程不安全、长度可变的字符串
➥在单线程操作中,进行字符串追加效率最高