String,StringBuilder,StringBuffer效率比较
package com.menggang.testjava;
public class AppendCharacter {
public static void main(String[] args) {
/**
* String
*/
String appendStr = "";// 创建字符串变量
long startTime = System.nanoTime();// 开始记事
for (int i = 20000; i < 50000; i++) {// 遍历30000个字符
appendStr += (char) i;// 字符串与每个字符执行连接操作
}
long endTime = System.nanoTime();// 结束计时
System.out.println("String追加字符3万个。");
// 输出用时
System.out.println("String用时:" + (endTime - startTime) / 1000000d + "毫秒");
System.out.println("###################################");
/**
* StringBuilder
*/
StringBuilder strBuilder = new StringBuilder();// 创建字符串构建器
startTime = System.nanoTime();// 开始计时
for (int i = 20000; i < 50000; i++) {// 遍历30000个字符
strBuilder.append((char) i);// 把每个字符追加到构建器
}
endTime = System.nanoTime();// 结束记事
System.out.println("字符串构建器追加字符3万个。");
// 输出用时
System.out.println("StringBuilder用时:" + (endTime - startTime) / 1000000d + "毫秒");
System.out.println("############################################");
/**
* StringBuffer
*/
StringBuffer strBuffer = new StringBuffer();// 创建字符串构建器
startTime = System.nanoTime();// 开始计时
for (int i = 20000; i < 50000; i++) {// 遍历30000个字符
strBuffer.append((char) i);// 把每个字符追加到构建器
}
endTime = System.nanoTime();// 结束记事
System.out.println("字符串构建器追加字符3万个。");
// 输出用时
System.out.print("StringBuffer用时:" + (endTime - startTime) / 1000000d + "毫秒");
}
}
输出结果为:
String追加字符3万个。
String用时:387.997356毫秒
###################################
字符串构建器追加字符3万个。
StringBuilder用时:1.427821毫秒
############################################
字符串构建器追加字符3万个。
StringBuffer用时:2.395849毫秒