public class StringTest {
public static void main(String[] args) {
String str1 = "hello ";
String str2 = "java";
String str3 = str1 + str2 + "!";
String str4 = new StringBuilder().append(str1).append(str2).append("!").toString();
}
}
上述 str3 和 str4 的执行效果其实是一样的,不过在for循环中,千万不要使用 “+” 进行字符串拼接。
public class test {
public static void main(String[] args) {
run1();
run2();
}
public static void run1() {
long start = System.currentTimeMillis();
String result = "";
for (int i = 0; i < 10000; i++) {
result += i;
}
System.out.println(System.currentTimeMillis() - start);
}
public static void run2() {
long start = System.currentTimeMillis();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < 10000; i++) {
builder.append(i);
}
System.out.println(System.currentTimeMillis() - start);
}
}
在for循环中使用 “+” 和StringBuilder进行1万次字符串拼接,耗时情况如下:
1、使用 “+” 拼接,平均耗时 250ms;
2、使用StringBuilder拼接,平均耗时 1ms;