StringとStringBuilderの差
1826 ワード
public class testString {
public static void main(String[] args) {
final int TIMES = 1000;
final int TIMES2 = 10000;
final int TIMES3 = 100000;
final String STRING="AAAAAA";
Long start;
start=System.currentTimeMillis();
String s="";
for (int i = 0; i < TIMES; i++) {
s+=STRING;
}
System.out.println(System.currentTimeMillis()-start);
start=System.currentTimeMillis();
StringBuilder sbd=new StringBuilder();
for (int i = 0; i < TIMES; i++) {
sbd.append(STRING);
}
System.out.println(System.currentTimeMillis()-start);
start=System.currentTimeMillis();
String s2="";
for (int i = 0; i < TIMES2; i++) {
s2+=STRING;
}
System.out.println(System.currentTimeMillis()-start);
start=System.currentTimeMillis();
StringBuilder sbd2=new StringBuilder();
for (int i = 0; i < TIMES2; i++) {
sbd2.append(STRING);
}
System.out.println(System.currentTimeMillis()-start);
start=System.currentTimeMillis();
String s3="";
for (int i = 0; i < TIMES3; i++) {
s3+=STRING;
}
System.out.println(System.currentTimeMillis()-start);
start=System.currentTimeMillis();
StringBuilder sbd3=new StringBuilder();
for (int i = 0; i < TIMES3; i++) {
sbd3.append(STRING);
}
System.out.println(System.currentTimeMillis()-start);
}
}
以前は効率の差をよく比較していなかったのですが、今日はごみのテスト類を書いて結果を見て驚きました
具体的には両者を比較して多く言わないで、結果を見て
16
0
984
0
401094
16