ylbtech-Java-Runoob-高级教程-实例-字符串: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/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |