字符串生成器(StringBuilder)
创建成功的字符串对象,其长度是固定的,虽然可以使用“+”进行追加,但是“+”会产生一个新的String实例,会在内存中创建新的字符串对象。如果反复对字符串进行修改,将极大的增加系统开销。而StringBuilder可以提高频繁增加字符串的效率。
StringBuilder的初始容量为16个字符。
验证字符串和字符串生成器的效率:
public class demo2 {
public static void main(String[] args) {
String str="";
long start=System.currentTimeMillis();
for(int i=0;i<10000;i++){
str=str+i;
}
long end=System.currentTimeMillis();
System.out.println("String运行的时间为"+(end-start));
StringBuilder str2=new StringBuilder("");
long start2=System.currentTimeMillis();
for(int j=0;j<10000;j++){
str2.append(j);
}
long end2=System.currentTimeMillis();
System.out.println("StringBuilder运行的时间为"+(end2-start2));
}
}
输出:
该类常用的方法:
- append()方法-à向字符串生成器中追加内容。
- insert(int offset,arg)方法-à向字符串生成器中的指定位置添加字符
- delete(int start,int end)方法-à移除从start开始至end-1处的此段字符。如果start=end,则不做任何变动。
类名 | String | StringBuilder | StringBuffer |
对象类型 | 字符串常量 | 字符串变量 | 字符串变量 |
线程安全性 | 不安全 | 不安全 | 不安全 |
执行效率 | 低 | 高 | 中 |