Java-Runoob-高级教程-实例-字符串:11. Java 实例 - 字符串性能比较测试
ylbtech-Java-Runoob-高级教程-实例-字符串:11. Java 实例 - 字符串性能比较测试 |
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. 扩展返回顶部 |
当循环的次数较少时,使用毫秒效果不明显,建议使用纳秒:
- System.nanoTime();
由于初始值不一样,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.返回顶部 |
4.返回顶部 |
5.返回顶部 |
6.返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
Java-Runoob-高级教程-实例-字符串:11. Java 实例 - 字符串性能比较测试的更多相关文章
- Java NIO系列教程(十一) Java NIO 与 IO
Java NIO系列教程(十一) Java NIO与IO 当学习了 Java NIO 和 IO 的 API 后,一个问题马上涌入脑海: 我应该何时使用 IO,何时使用 NIO 呢?在本文中,我会尽量清 ...
- Java入门 - 高级教程 - 02.集合
原文地址:http://www.work100.net/training/java-collection.html 更多教程:光束云 - 免费课程 集合 序号 文内章节 视频 1 概述 2 集合接口 ...
- Java入门 - 高级教程 - 06.邮件收发
原文地址:http://www.work100.net/training/java-email.html 更多教程:光束云 - 免费课程 邮件收发 序号 文内章节 视频 1 概述 2 发送一封简单的邮 ...
- Java入门 - 高级教程 - 08.Applet
原文地址:http://www.work100.net/training/java-applet.html 更多教程:光束云 - 免费课程 Applet 序号 文内章节 视频 1 概述 2 Apple ...
- Java入门 - 高级教程 - 03.泛型
原文地址:http://www.work100.net/training/java-generic.html 更多教程:光束云 - 免费课程 泛型 序号 文内章节 视频 1 概述 2 泛型方法 3 泛 ...
- Java入门 - 高级教程 - 05.网络编程
原文地址:http://www.work100.net/training/java-networking.html 更多教程:光束云 - 免费课程 网络编程 序号 文内章节 视频 1 概述 2 Soc ...
- Java入门 - 高级教程 - 07.多线程
原文地址:http://www.work100.net/training/java-multi-threading.html 更多教程:光束云 - 免费课程 多线程 序号 文内章节 视频 1 概述 2 ...
- Java入门 - 高级教程 - 09.文档注释
原文地址:http://www.work100.net/training/java-documentation.html 更多教程:光束云 - 免费课程 文档注释 序号 文内章节 视频 1 概述 2 ...
- Java入门 - 高级教程 - 01.数据结构
原文地址:http://www.work100.net/training/java-data-structure.html 更多教程:光束云 - 免费课程 数据结构 序号 文内章节 视频 1 概述 2 ...
- Java入门 - 高级教程 - 04.序列化
原文地址:http://www.work100.net/training/java-serialization.html 更多教程:光束云 - 免费课程 序列化 序号 文内章节 视频 1 概述 2 序 ...
随机推荐
- python 快排,堆排,归并
#归并排序 def mergeSort(a,L,R) : if(L>=R) : return mid=((L+R)>>1) mergeSort ...
- Linux(4):文件属性
文件属性: # 重点: 磁盘空间不足 和 软链接与硬链接的区别 查看文件的属性: # ls lhi 文件 [root@NEO ~]# ls -lhi /etc/hosts 130078 -rw-r-- ...
- [NOIP2002] 提高组 洛谷P1031 均分纸牌
题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若于张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 ...
- 【BZOJ1834】network 网络扩容(最大流,费用流)
题意:给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用. 求: 1. 在不扩容的情况下,1到N的最大流: 2. 将1到N的最大流增加K所需的最小扩容费用. ...
- POJ 1328 Radar Installation【贪心 区间问题】
题目链接: http://poj.org/problem?id=1328 题意: 在x轴上有若干雷达,可以覆盖距离d以内的岛屿. 给定岛屿坐标,问至少需要多少个雷达才能将岛屿全部包含. 分析: 对于每 ...
- 2018.11.3 PION模拟赛
期望:100 实际:100 #include<cstdio> #include<cstring> #include<iostream> #include< ...
- 转:TLV 格式及编解码示例
TLV是一种可变格式,意思就是: Type类型, Lenght长度,Value值: Type和Length的长度固定,一般那是2.4个字节(这里统一采用4个字节): Value的长度有Length指定 ...
- 共享内存mmap学习 及与 shmxxx操作的区别
上一篇学习了共享内存: http://www.cnblogs.com/charlesblc/p/6142139.html 根据这个 http://blog.chinaunix.net/uid-2633 ...
- ubuntu16.04LTS安装软件
1.安装chrome 下载源加入到系统的源列表 sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/ ...
- 非计算机专业的伟伯是怎样拿到阿里Offer的。求职励志!!!
写在前面: 2015 年 7 月初.參加阿里巴巴校招内推, 8 月 15 日拿到研发project师 JAVA 的 offer .我的专业并不是计算机,也没有在互联网公司实习过,仅仅有一些学习和面试心 ...