Java 实例 - 字符串性能比较测试
以下实例演示了通过两种方式创建字符串,并测试其性能:
StringComparePerformance.java 文件
public class StringComparePerformance{
public static void main(String[] args){
long startTime = System.currentTimeMillis();
for(int i=0;i<50000;i++){
String s1 = "hello";
String s2 = "hello";
}
long endTime = System.currentTimeMillis();
System.out.println("通过 String 关键词创建字符串"
+ " : "+ (endTime - startTime)
+ " 毫秒" );
long startTime1 = System.currentTimeMillis();
for(int i=0;i<50000;i++){
String s3 = new String("hello");
String s4 = new String("hello");
}
long endTime1 = System.currentTimeMillis();
System.out.println("通过 String 对象创建字符串"
+ " : " + (endTime1 - startTime1)
+ " 毫秒");
}
}
以上代码实例输出结果为:
通过 String 关键词创建字符串 : 6 毫秒 通过 String 对象创建字符串 : 14 毫秒
Java 实例
Chopin
cho***415@13.com
当循环的次数较少时,使用毫秒效果不明显,建议使用纳秒:
Chopin
cho***415@13.com
虚名
kqd***005@qq.com
由于初始值不一样,3次比较出来的时间不具有对比性,应在同等条件下比较计算花费时间;
public class StringOptimization { public static void main(String[] args) { String variables[] = new String[50000]; long startTime0 = System.currentTimeMillis(); for (int i = 0; i < 50000; i++) { variables[i] = "hello"; } long endTime0 = System.currentTimeMillis(); System.out.println("使用字面量直接赋值字符串,花费时间:" + (endTime0 - startTime0) + "毫秒"); String variables1[] = new String[50000]; long startTime1 = System.currentTimeMillis(); for (int i = 0; i < 50000; i++) { variables1[i] = new String("hello"); } long endTime1 = System.currentTimeMillis(); System.out.println("使用字符串对象花费时间:" + (endTime1 - startTime1) + "毫秒"); String variables2[] = new String[50000]; long startTime2 = System.currentTimeMillis(); for (int i = 0; i < 50000; i++) { variables2[i] = new String("hello"); variables2[i] = variables2[i].intern(); } long endTime2 = System.currentTimeMillis(); System.out.println("使用字符串对象intern()方法花费时间:" + (endTime2 - startTime2) + "毫秒"); } }输出结果为:
虚名
kqd***005@qq.com