实例测试java的Integer转String的效率问题1.8
原文链接:https://blog.csdn.net/chicaohun7473/article/details/100851373
查看String源码时,读到源码的toString方法时,打算探究下几种转换的效率,网上查到该帖子时,
本地执行后发现结果与帖子并不相同,唯一的区别便是jdk的版本,故提出自己的结论!
测试环境:操作系统 windows 10,内存 8g,jdk 1.8,jvm参数是默认值,测试代码如下:
public static void main(String[] args) {
Integer[] intArr = new Integer[2000000];
String[] strArr1 = new String[2000000];
String[] strArr2 = new String[2000000];
String[] strArr3 = new String[2000000];
String[] strArr4 = new String[2000000];
Long t1 = System.currentTimeMillis();
for(int i = 0; i < 2000000; i++){
intArr[i] = i + 1;
}
Long t2 = System.currentTimeMillis();
for(int i = 0; i < 2000000; i++){
strArr1[i] = String.valueOf(intArr[i]);
}
Long t3 = System.currentTimeMillis();
for(int i = 0; i < 2000000; i++){
strArr2[i] = Integer.toString(intArr[i]);
}
Long t4 = System.currentTimeMillis();
for(int i = 0; i < 2000000; i++){
strArr3[i] = intArr[i] + "";
}
Long t5 = System.currentTimeMillis();
for(int i = 0; i < 2000000; i++){
strArr4[i] = (intArr[i]).toString();
}
Long t6 = System.currentTimeMillis();
System.out.println("t1 = " + t1);
System.out.println("t2 = " + t2);
System.out.println("t3 = " + t3);
System.out.println("t4 = " + t4);
System.out.println("t5 = " + t5);
System.out.println("t6 = " + t6);
System.out.println("赋值:" + (t2 - t1));
System.out.println("String.valueOf(i):" + (t3 - t2));
System.out.println("Integer.toString(i):" + (t4 - t3));
System.out.println("i + \"\":" + (t5 - t4));
System.out.println("i.toString():" + (t6 - t5));
}
执行结果:



推荐使用 toString() 或者String.valueOf(i)方法。
实例测试java的Integer转String的效率问题1.8的更多相关文章
- java中Integer 和String 之间的转换
java中Integer 和String 之间的转换 将数组转换成字符串:char[] array = {'a','b','c','d','e'};String str = new String(ar ...
- java 13-4 Integer和String、int之间的转换,进制转换
1.int类型和String类型的相互转换 A.int -- String 推荐用: public static String valueOf(int i) 返回 int 参数的字符串表示形式. B. ...
- Java中Integer和String浅谈
Java中的基本数据类型有八种:int.char.boolean.byte.long.double.float.short.Java作为一种面向对象的编程语言,数据在Java中也是一种对象.我们用基本 ...
- “无效数字” ;java.lang.Integer cannot be cast to java.lang.String
今天页面上突然查询不出数据,大致的sql语句是 select xx ,xxx from table a where a.lrmb in ( 6101060033, 61010503300, 61016 ...
- Java的Integer常量池和String常量池
1.Integer的常量池 看下面一段代码: package cn.qlq.test; public class ArrayTest { public static void main(String[ ...
- Java-Runoob-高级教程-实例-字符串:10. Java 实例 - 测试两个字符串区域是否相等-uncheck
ylbtech-Java-Runoob-高级教程-实例-字符串:10. Java 实例 - 测试两个字符串区域是否相等 1.返回顶部 1. Java 实例 - 测试两个字符串区域是否相等 Java ...
- Mybatis的失误填坑-java.lang.Integer cannot be cast to java.lang.String
Mybatis的CRUD小Demo 为方便查看每次的增删改结果,封装了查询,用来显示数据库的记录: public static void showInfo(){ SqlSession session ...
- 使用mybatis报错constructor found in com.atguigu.mybatis.bean.Department matching [java.lang.Integer, java.lang.String]
报错constructor found in com.atguigu.mybatis.bean.Department matching [java.lang.Integer, java.lang.St ...
- JSONObject转换Int类型--java.lang.Integer cannot be cast to java.lang.String
参数 params={"abc":0} JSONObject转换Int类型 JSONObject json = JSONObject.fromObject(params); if ...
随机推荐
- echarts数据变了不重新渲染,以及重新渲染了前后数据会重叠渲染的问题
1.echarts数据变了但是视图不重新渲染 新建Chart.vue文件 <template> <p :id="id" :style="style&q ...
- iOS组件化开发-CocoaPods简介
CocoaPods简介 任何一门开发语言到达一定阶段就会出现第三方的类库管理工具,比如Java的Maven.WEB的Webpack等.在iOS中类库的管理工具-CocoaPods. 利用CocoaPo ...
- 理解Spring框架中Bean的5个作用域
当通过spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域.Spring支持如下5种作用域: singleton:单例模式,在整个Spring I ...
- git统计项目中成员代码量
查看git上个人代码量 git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; su ...
- C++ 系列:函数可变长参数
一.基础部分 1.1 什么是可变长参数 可变长参数:顾名思义,就是函数的参数长度(数量)是可变的.比如 C 语言的 printf 系列的(格式化输入输出等)函数,都是参数可变的.下面是 printf ...
- AndroidStudio WiFi调试插件
前言 此篇博客也是Android studio插件篇的一部分,后续有时间我会介绍更多AndroidStudio的插件方便开发. Android设备用WiFi调试在以前一般是通过adb连接的,但是这样的 ...
- CIE XYZ
了解CIE XYZ的来龙去脉,看维基之前,先读这两篇文章: https://medium.com/hipster-color-science/a-beginners-guide-to-colorime ...
- 使用ProGuard混淆JAR包
1.在Input/OutPut选项下面,add input 导入需要混淆的jar包2.点击add output,设置混淆后输出jar包的名字和路径.如下图:3.在下面的编辑区右边点击add增加要混淆的 ...
- thinkphp一键清除缓存的方法
后台控制器: <?php namespace Home\Controller; use Think\Controller; class HuancuController extends Cont ...
- spingboot linux 启动方式与脚本
java -jar XXX.jar java -jar xxx.jar & 区别:前台启动ctrl+c就会关闭程序,后台启动ctrl+c不会关闭程序 java -jar xxx.jar > ...