String 和 StringBuilder 的区别
String | StringBuilder |
---|---|
对象恒定不变 | 对象表示的字符串可变 |
所以StringBuilder可以克服String对象恒定带来的影响
StringBuilder有四个构造函数:
StringBuilder();
value内容为空,并设置容量为16个字节;
StringBuilder(CharSequece seq);
使用seq初始化,容量在此基础上加16;
StringBuilder(int capacity);
设置特定容量;
StringBuilder(String str);
使用str初始化,容量str大小的基础上加16;
StringBuilder和StringBuffer类的对象都能被对多次改,并且不产生新的未使用的对象。StringBuilder相较于StringBuffer有速度优势,在不考虑线程安全时优先考虑StringBuilder,然而线程安全情况下则必须使用StringBuffer
对于一般的字符串连接操作StringBuilder并不一定优于String。在字符串使用较少时过度使用StringBuilder会造成性能浪费,只有大量无法预知的字符串操作才考虑使用StringBuilder。
public class textStringBuilder {
/*
StringBuilder:可变字符串,可以看作一个容器。
构造方法:
public StringBuilder();创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str);根据字符串内容,来创建可变字符串对象
*/
public static void main(String[] args) {
//public StringBuilder();创建一个空白可变字符串对象,不含有任何内容
StringBuilder sb = new StringBuilder();
System.out.println(sb);//空白字符串
//public StringBuilder(String str);根据字符串内容,来创建可变字符串对象
StringBuilder sb2 = new StringBuilder("abc");
System.out.println(sb2);//abc
}
}