2 StringBuilder 方法:append,insert ... 都返回
当前 StringBuilder 对象本身的引用。
3 如果软件需要大量字符串处理时候建议使用StringBuilder
4 String s = s1+s2; Java实际上才是如下代码运行:
String s = new StringBuilder(s1)
.append(s2).toString();
String s = s1+s2+s3+s4; 被优化为
String s = new StringBuilder(s1)
.append(s2).append(s3).append(s4).toString();
s+="a";//会产生两个新对象(StringBuilder, String)
s+="a";//会产生两个新对象
StringBuilder buf=new StringBuilder();
buf.append("a");
buf.append("a");
5 StringBuffer 和 StringBuilder API几乎一样!
StringBuffer 是java早期提供的,速度稍慢,线程安全
StringBuilder 是Java5 以后提供的,速度快,非线程安全
package day12.str;
public class StringBuilderDemo {
public static void main(String[] args) {
StringBuilder buf = new StringBuilder(100);
//StringBuilder 的内部是一个使用变长算法维护的char[]
buf.append("李敖:")
.append("的前妻胡女士是")
.append("绝代佳人!")
.insert(0, "大师")
.delete(4, 5);
System.out.println(buf);
String s1 = "abc";
String s2 = "def";
String s3 = "efg";
//String s4 = s1+s2+s3;
String s4 = new StringBuilder(s1)
.append(s2)
.append(s3)
.toString();
String s5 = s1;
s5+=s1;// s5=s5+s1;
// s5=new StringBuilder(s5).append(s1).toString();
s5+=s1;
s5+=s1;
s5+=s1;
StringBuilder b = new StringBuilder(s1);
b.append(s1);
b.append(s1);
b.append(s1);
b.append(s1);
String s6 = b.toString();
}
}