2 StringBuilder 和 StringBuffer
String = char[] + 操作(复制创建新对象)
StringBuilder=char[] + 对char[]操作(处理当前数组内容)
StringBuilder 内部的char[]数组内容可变, 如果长度
不够, 利用变长算法维护, 自动扩容长度.
1) StringBuilder 是变长字符序列
2) StringBuilder 方法:append,insert ... 都返回
当前 StringBuilder 对象本身的引用。
3) 如果软件需要大量字符串处理时候建议使用StringBuilder
"A" + "B"
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)
StringBuilder buf=new StringBuilder();
buf.append("a");
buf.append("a");
5) StringBuffer 和 StringBuilder API几乎一样!
StringBuffer 是java早期提供的,速度稍慢,线程安全
StringBuilder 是Java5 以后提供的,速度快,非线程安全
char[] Stirng StringBuilder(1.5) ==? StringBuffer(1.0)
非线程安全非同步 线程安全同步