String
String 值不可变,每次对String操作会生成新的String对象,浪费内存空间。
StringBuffer
StringBuffer在对对象进行字符操作时,直接在原有对象上进行修改,不会生成新的对象,可提高效率,节约内存空间。
StringBuffer相关常用方法小结:
1.append()
在字符串末尾追加内容
StringBuffer sb=new StringBuffer("Hello");
System.out.println(sb);
sb.append(" world!");
System.out.println(sb);
结果显示:
Hello
Hello world!
2.deleteCharAt()
删除指定位置的字符
StringBuffer sb=new StringBuffer("abcdef");
System.out.println(sb);
sb.deleteCharAt(2); //2为字符下标
System.out.println(sb);
结果显示:
abcdef
abdef
3.delete()
此方法一次性删除多个字符
StringBuffer sb=new StringBuffer("abcdef");
System.out.println(sb);
sb.delete(2,5); //2为起始位置,5为终止位置
System.out.println(sb);
结果显示:
abcdef
abf
**4.insert() **
在指定位置插入字符串
StringBuffer sb=new StringBuffer("abcdef");
System.out.println(sb);
sb.insert(1,"123"); //在1位置开始插入
System.out.println(sb);
结果显示:
abcdef
a123bcdef
5.setCharAt() 方法
修改指定位置的字符
StringBuffer sb=new StringBuffer("abcdef");
System.out.println(sb);
sb.setCharAt(1,'5'); //将位置1的字符b替换为5
System.out.println(sb);
结果显示:
abcdef
a5cdef
StringBuilder
StringBuilder类和StringBuffer类功能基本相似,方法也差不多,主要区别在于StringBuffer类的方法是多线程安全的,而StringBuilder不是线程安全的,相比而言,StringBuilder类会略微快一点。
StringBuffer:线程安全
StringBuilder:线程不安全
使用环境
- 操作少量的数据使用 String;
- 单线程操作大量数据使用 StringBuilder;
- 多线程操作大量数据使用 StringBuffer。
网友评论