`
chenqiuzhen
  • 浏览: 7607 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

测试int类型转String类型的两种方法的执行效率

 
阅读更多

在Java中Int类型转String的两种方法:Integer.toString和 String.valueOf,这两种方法都能实现,以前也从来没有考虑效率问题,今天由于项目上需要大量的转换,考虑到效率问题,于是做了下面测试:


package hualu.ehualu.pmis;

/**
 * 测试int类型转String类型的两种方法的执行效率
 * @author chenqz5633@163.com
 *
 */
public class TestInt2String {
	public static void main(String[] args) {
		// 第一个方法比第二个方法用时长的次数
		int firstMethodOld = 0;
		// 此循环加大循环次数,减少偶然因素带来的影响
		for (int j = 0; j < 10; j++) {
			// 方法1--------------------------------------------------------------------
			long time1 = System.currentTimeMillis();
			String number1 = null;
			// 此模块模拟你可能有多个int变量需要转化成String
			for (int i = 0; i < 10000000; i++) {
				number1 = Integer.toString(186);
			}			
			//计算从调用开始到结束的时间差
			long returnTime1 = (System.currentTimeMillis() - time1);
			System.out.println("Integer.toString方法用时:" + returnTime1 + "毫秒,值为:" + number1);
			// 方法1----end---------------------------------------------------------------------------
			// 方法2-------------------------------------------------------------------------------------
			long time2 = System.currentTimeMillis();
			String number2 = null;

			// 此模块模拟你可能有多个int变量需要转化成String
			for (int i = 0; i < 10000000; i++) {
				number2 = String.valueOf(186);
			}
			
			//计算从调用开始到结束的时间差
			long returnTime2 = (System.currentTimeMillis() - time2);
			System.out.println("String.valueOf用时:" + returnTime2 + "毫秒,值为:" + number2);
			// 方法2------end-------------------------------------------------------------------------------

			//比较两种方法的用时长短
			if (returnTime1 > returnTime2) {
				firstMethodOld++;
			}
		}
		
		float Probability= firstMethodOld / 10f;
		//System.out.println("firstMethodOld:"+firstMethodOld);
		System.out.println("Integer.toString方法调用时间比String.valueOf方法调用时间长的概率是:" + Probability);
		
		
/**执行结果如下:
Integer.toString方法用时:328毫秒,值为:186
String.valueOf用时:328毫秒,值为:186
Integer.toString方法用时:329毫秒,值为:186
String.valueOf用时:328毫秒,值为:186
Integer.toString方法用时:312毫秒,值为:186
String.valueOf用时:344毫秒,值为:186
Integer.toString方法用时:312毫秒,值为:186
String.valueOf用时:329毫秒,值为:186
Integer.toString方法用时:312毫秒,值为:186
String.valueOf用时:328毫秒,值为:186
Integer.toString方法用时:328毫秒,值为:186
String.valueOf用时:328毫秒,值为:186
Integer.toString方法用时:313毫秒,值为:186
String.valueOf用时:328毫秒,值为:186
Integer.toString方法用时:328毫秒,值为:186
String.valueOf用时:328毫秒,值为:186
Integer.toString方法用时:313毫秒,值为:186
String.valueOf用时:328毫秒,值为:186
Integer.toString方法用时:328毫秒,值为:186
String.valueOf用时:328毫秒,值为:186
Integer.toString方法调用时间比String.valueOf方法调用时间长的概率是:0.1



	*/	
	

	}
}

其实我们看String.java源码也能看出来:

       


  public static String valueOf(int i) {
        return Integer.toString(i, 10);
    }

 

String.valueOf也是调用的Integer.toString,所以String.valueOf属于二次装载,不如Integer.toString来的直接。所以咱以后最好用Integer.toString方法来转换。

分享到:
评论

相关推荐

    java判断String类型是否能转换为int的方法

    标题中提到的“java判断String类型是否能转换为int的方法”,是指在Java编程语言中,如何编写代码来判断一个String类型的变量是否能够被转换成一个int类型的数值。在Java中,String到int的转换是一个常见的需求,...

    java中string和int型的相互转换.doc

    通常,为了提高代码的可读性和执行效率,推荐使用`String.valueOf()`进行`int`到`String`的转换,以及使用`Integer.parseInt()`进行`String`到`int`的转换。这些方法不仅简单明了,而且性能优越。

    详解Go开发Struct转换成map两种方式比较

    通过JSON编码和解码的方法实现简单,执行效率较高,尤其是在结构体字段类型简单且不需要对字段进行额外处理的情况下。然而,这种方法在处理一些特定类型时(如time.Time、interface{}等)可能需要额外的处理逻辑,...

    java的String用法类型总结

    ### Java的String用法类型总结 #### 一、概述 在Java编程语言中,`String` 类是最常用的数据类型之一,用于表示不可变的字符序列。由于字符串在实际开发中的重要性和高频使用特性,深入理解并掌握其用法至关重要。...

    js表格排序实例分析(支持int,float,date,string四种数据类型)

    在实现表格排序功能时,考虑了四种不同的数据类型:整数(int)、浮点数(float)、日期(date)和字符串(string)。每种类型的数据排序逻辑可能不同,因此需要对数据类型进行判断,以正确排序。 #### 4. 升序和降序的实现...

    String1.java

    接下来,程序演示了两种不同的字符串方法的应用: 1. **打印原始输入字符串**:直接打印用户输入的字符串,这主要是为了验证输入是否正确。 ```java System.out.println("The string you typed in is: " + user...

    struts2-处理类型转换

    Struts2提供了两种主要的校验机制:编程式校验和配置式校验。 1. **编程式校验**:Action类需要实现`Validateable`接口,这会使得Struts2在执行`execute`方法前调用`validate`方法。在`validate`方法中,可以添加...

    C程序设计及应用教程数据类型与流程控制PPT课件.pptx

    这导致值类型通常占用更少的内存,执行效率更高,但引用类型可以更灵活地处理复杂的数据结构。 整型是C#中的基本数值类型,包括sbyte、byte、short、ushort、int、uint、long和ulong,分别对应不同大小和符号的整数...

    java原始数据类型的包装类

    Java编程语言提供了八种原始数据类型,包括byte、short、int、long、float、double、char和boolean。这些原始类型在处理数据时非常高效,但它们不具备对象的特性,例如方法调用。为了使原始类型能够参与面向对象的...

    string类的常用方法.pdf

    `String`类有两种主要的创建方式: 1. **使用字符串字面量**:这是最简单的方式,直接在代码中定义即可。 ```java String str = "Hello World"; ``` 2. **使用构造函数**:这种方式更灵活,但通常不推荐用于简单...

    C程序设计及应用教程数据类型与流程控制实用PPT学习教案.pptx

    而引用类型则存储数据的地址,即一个指针,这些数据存储在受管制的堆中,内存分配和释放由垃圾回收机制管理,因此可以存储更复杂的数据结构,但执行效率相对较低,且引用类型变量不能为null。 2. 整型数据类型: ...

    第数据类型与流程控制PPT学习教案.pptx

    在C#中,常量有两种形式:const和readonly。const常量在编译时就确定其值,而readonly常量则在运行时初始化,两者都不能在声明后修改其值,但readonly可以在构造函数中赋值,这是它们的主要区别。 变量是存储数据的...

    java代码-例子3-21 自动类型转换的方法重载实例。

    总之,Java中的自动类型转换和方法重载是两个关键概念,它们共同提升了程序的灵活性和效率。在这个"例子3-21"中,自动类型转换使得我们可以更方便地调用方法,而无需关心底层的类型转换细节。这样的设计是Java语言的...

    数据类型与运算符

    6. 数据类型转换:Java 中有两种类型转换:自动类型转换(如 `int -&gt; double`)和强制类型转换(如 `(int) doubleValue`)。自动类型转换发生在兼容类型且目标类型更大时,强制类型转换则需要确保不会丢失数据,否则...

    用java实现数三退一 两种方法

    下面我们将详细介绍两种不同的Java方法来实现这个算法。 方法一:使用while循环 在Java中,我们可以使用while循环来不断调整数字,直到达到0。首先,定义一个变量`count`表示当前的数字,然后在循环中检查是否可以...

    10个Java经典的String面试题!.pdf

    Java有8种基本数据类型,如int、char等,而String属于类,它继承了Object类。 2. **String是可变的吗?** String在Java中是不可变的,因为它的实例是final类型的。这意味着一旦创建了一个String对象,就不能更改其...

    数据类型与流程控制PPT学习教案.pptx

    在处理字符串时,String类提供了丰富的操作方法,但因为是引用类型,频繁修改可能导致效率问题,此时可使用StringBuilder类。字符串常量可通过`@`符号避免转义,如`string myFile = @"C:\net\fileName.cs"`。 数据...

    训练师脚本:《使用C#中的枚举、结构、值类型和引用类型

    枚举用于定义一组固定的常量,结构用于表示简单的数据结构并存储在栈中以提高效率,而值类型和引用类型则分别适用于不同大小和复杂度的数据。正确选择和使用这些类型可以帮助开发人员构建高效、健壮的应用程序。

Global site tag (gtag.js) - Google Analytics