字符串缓冲类:因为String是不可变的,在须要频繁改变字符对象的状况下,须要使用可变的字符串缓冲区类。css
特色:java
StringBuffer sb = new StringBuffer("hcx");
sb.append(true);
sb.append('a');
sb.append(97).append(98).append(new char[]{'b','c'}); // 链式编程
System.out.println(sb.toString());// 输出缓冲区的中文本数据 hcxtruea9798bc
sb = new StringBuffer("hcx");
sb.insert( 2, "java" );
System.out.println( sb.toString() );//hcjavax
复制代码
StringBuffer sb1 = new StringBuffer("hcxx");
System.out.println(sb1.indexOf("x"));//2
System.out.println(sb1.lastIndexOf("x"));//3
复制代码
StringBuffer sb2 = new StringBuffer("helloworld");
System.out.println(sb2.replace(2, 6, "java"));//替换掉 llow 包头不包尾 hejavaorld
sb2.setCharAt(8, 'A');//l-->A
System.out.println(sb2);//hejavaorAd
StringBuffer sb4 = new StringBuffer("helloworld");
System.out.println(sb4.reverse());//dlrowolleh
复制代码
StringBuffer sb3 = new StringBuffer("helloworld");
System.out.println(sb3.delete(2, 4));//heoworld
System.out.println(sb3.deleteCharAt(2));//heworld
复制代码
使用Stringbuffer无 参的构造函数建立一个对象时,默认的初始容量是多少? 若是长度不够使用了,自动增加多少倍?编程
StringBuffer底层是依赖了一个字符数组才能存储字符数据的,该字符串数组默认的初始容量是16, 若是字符数组的长度不够使用时,自动增加1倍。数组
StringBuffer 与 StringBuilder的相同处与不一样处:安全
相同点:
1. 两个类都是字符串缓冲类。
2. 两个类的方法都是一致的。
不一样点:
1. StringBuffer是线程安全的,操做效率低 ,StringBuilder是线程非安全的,操做效率高。
2. StringBuffer是jdk1.0出现 的,StringBuilder 是jdk1.5的时候出现的。
复制代码
推荐使用: StringBuilder,由于操做效率高。app