ylbtech-Runoob-Java-高级教程-实例-字符串:11. Java 实例 - 字符串性能比较测试 |
1.返回顶部 |
1、
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 毫秒
2、
2. 扩展返回顶部 |
1、
扩展1
当循环的次数较少时,使用毫秒效果不明显,建议使用纳秒:
System.nanoTime();
2、
扩展2
由于初始值不一样,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) + "毫秒"); } }
输出结果为:
使用字面量直接赋值字符串,花费时间:1毫秒
使用字符串对象花费时间:3毫秒
使用字符串对象intern()方法花费时间:8毫秒
3、
3.返回顶部 |
4.返回顶部 |
5.返回顶部 |
1、
2、
6.返回顶部 |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |