String、StringBuilder

时间:2023-03-08 17:45:56
public class testString{

     public static void main(String[] args) {
String a="cool";
String s1="";
StringBuilder s2=new StringBuilder();
final int N=30000;
long t0=System.currentTimeMillis();
for (int i=0;i<N ;++i ) {
s1+=a;//String类创建之后不会再做修改和变动,即immutable(不可改变的),所以使用+进行字符串拼接的话,会先创建一个StringBuilder对象,然后
           //调用其append方法,再调用toString()方法转化为String类型,所以在循环中使用+拼接字符串开销很大,使用StringBuilder就很快
}
long t1=System.currentTimeMillis();
for (int i=0;i<N ;++i ) {
s2.append(a);//使用StringBuilder就很快
}
long t2=System.currentTimeMillis();
System.out.println(t1-t0);
System.out.println(t2-t1);
System.out.println(s1);
System.out.println("------------------");
System.out.println(s2); }
}