ylbtech-Java-Runoob-高级教程-实例-字符串:11. Java 实例 - 字符串性能比较测试
1.返回顶部
1、

Java 实例 - 字符串性能比较测试

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

最新文章

  1. Object obj=new Object()的内存引用
  2. Cheatsheet: 2016 06.01 ~ 6.30
  3. 基于Css反射形自触发事件,优化你的延时事件
  4. js-FCC算法Friendly Date Ranges
  5. UVA 11766 Racing Car Computer --DP
  6. HDU 2669 Romantic(扩展欧几里德, 数学题)
  7. rtems总结
  8. IDEA的使用
  9. Android 图片处理方法
  10. impress.js学习总结
  11. Delphi XE6 for Android 让手机震动(调用Java的函数)
  12. DTO学习系列之AutoMapper(四)
  13. sql server group by having 之复习篇
  14. SecureCRT使用Vim出现中文乱码问题的解决
  15. codeforces 893C Rumor 前向星+dfs
  16. sklearn:最近邻搜索sklearn.neighbors
  17. 微信小程序基础之新建的项目文件图解
  18. python三大器(装饰器/生成器/迭代器)
  19. Lucas卢卡斯定理
  20. CentOS查询系统版本

热门文章

  1. 路线统计(codevs 1482)
  2. BZOJ 1123 tarjan
  3. T1365 浴火银河星际跳跃 codevs
  4. [Noip复习知识点][个人向]Zackzh
  5. [Poj3744]Scout YYF I (概率dp + 矩阵乘法)
  6. 我和 HelloGitHub
  7. Linux源代码分析工具-Source Insight
  8. poj 1695 Magazine Delivery 记忆化搜索
  9. 配置activeMQ
  10. Java第二次作业參考代码