`
kop
  • 浏览: 20926 次
  • 性别: Icon_minigender_1
  • 来自: 春秋战国
最近访客 更多访客>>
社区版块
存档分类
最新评论

JAVA中int转String类型效率比较

    博客分类:
  • J2SE
阅读更多
KOP注:这篇文章写在2006-09-24 ,那时我还在学校。现在想整理一下以前的东西,发在我刚开的javaeye的博客中。

大家都知道JAVA中 int 类型要转化成 String 类型,可以有三种方式,分别是:
* (1) String.valueOf(i)
* (2) Integer.toString(i)
* (3) i+""


因为前两天,写一个程序时,要用到 int 转 String ,并且数据量很大,因此想看看这三种方式的效率怎样,写了一下简单的测试程序,在此记录一下。

public class TestIntToStr {
 
 public static void main(String[] args) {
  int[] intArr = new int[1000000];
  String[] strArr1 = new String[1000000];//为了公平分别定义三个数组

  String[] strArr2 = new String[1000000];
  String[] strArr3 = new String[1000000];
  //赋值
  Long t1 = System.currentTimeMillis();
  for(int i=0;i<1000000;i++){
   intArr[i]=i+1;
  }
  Long t2 = System.currentTimeMillis();
  for(int i=0;i<1000000;i++){
    strArr1[i] = String.valueOf(intArr[i]);  
  }
  Long t3 = System.currentTimeMillis();
  for(int i=0;i<1000000;i++){
   strArr2[i] = Integer.toString(intArr[i]);
  }
  Long t4 = System.currentTimeMillis();
  for(int i=0;i<1000000;i++){
   strArr3[i] = intArr[i]+"";
  }
  Long t5 = 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("赋值:"+(t2-t1));
  System.out.println("String.valueOf(i):"+(t3-t2));
  System.out.println("Integer.toString(i):"+(t4-t3));
  System.out.println("i+\"\":"+(t5-t4));

 }

}



在JDK1.5环境下测试多次:

发现:

赋值:0
String.valueOf(i):891
Integer.toString(i):468
i+"":844



String.valueOf(i)与i+""的时间差别不大。



而Integer.toString(i)时间只有它们的一半左右,即此方法效率比较高。

分享到:
评论
1 楼 siemens800 2009-02-16  
<p><span style="color: red;">Exception in thread "main" java.lang.OutOfMemoryError: Java heap space</span><br />什么意思?哪个地方需要怎么设置?试了下10万数据量时还好,超过100万就不行了.<br />
</p><p>1234719707265</p>
<p>1234719707281</p>
<p>赋值:<span style="white-space: pre;"> </span>16</p>
<p>String.valueOf(): 140</p>
<p>Integer.toString() :94</p>
<p>i+ ""<span style="white-space: pre;"> </span>    :141</p>
<p></p>
<p><strong>附件:<span style="font-weight: normal;"><strong>D:\Program Files\MyEclipse 6.6\eclipse\</strong><span style="font-weight: bold;">eclipse.ini</span></span></strong></p>
<p> </p>
<pre name="code" class="xml">-clean
-showsplash
com.genuitec.myeclipse.product.ide
--launcher.XXMaxPermSize
256m
-vmargs
-Xms512m
-Xmx1024m
-Duser.language=en
-XX:PermSize=128M
-XX:MaxPermSize=256M</pre>
 
<p> </p>
<p> </p>
<p> </p>
<p> </p>

相关推荐

    史上最全Java面试题目大集合

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble ...

    JAVA程序员面试宝典

    3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。原始类型封装类boolean...

    java笔试题大汇总

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble ...

    Java程序员面试宝典

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble 引用类型和原始...

    java程序员面试技巧

    Int是java的原始数据类型,Integer是java为 int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble ...

    Java精华(免费版)

    (1)在每一次循环中,都要先将string类型转换为stringbuffer类型,然后将‘*’追加进去,然后再调用tostring()方法,转换为string类型,效率很低。 (2)在没次循环中,都只是调用原来的那个stringbuffer对象,...

    java面试笔试题集合

    java面试笔试题集合4. 多态性: 多态性是指允许不同类的...java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别

    java试题经典考试试题

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble

    java考试题大总结

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble ...

    Java笔试题目汇总

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble 引...

    Java面试题大全(doc)

    1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个...Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类booleanBoolean charCharacter byteByte sho

    java面试笔试题大汇总

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat double...

    达内 coreJava 习题答案

    其中a为1至9之中的一个数,项数也要可以指定。 import java.util.Scanner; class Multinomial{ public static void main(String[] args){ int a; //定义输入的 a int howMany; //定义最后的一项有多少个数字 ...

    JAVA面试题最全集

    5.Java中的分页、效率考虑。 6.简单介绍您所了解的structs。 1.xml在项目中的作用 2.s-EJB 与 e-EJB的区别 3.会话面的作用 4.cmp与bmp的优缺点 5.j2me程序的必需的几个部分 6.c/s与b/s的区别 7.构建一...

    java面试题

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble ...

    JAVA相关基础知识120问

    java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 ........... 5、运行时异常与一般异常有何异同? 异常表示程序运行过程中可能出现的非...

    125条常见的java面试笔试题大汇总

    来源与网上流传的125条常见的java面试笔试题大汇总 总结 1.抽象:  抽象就是忽略一个主题中与当前目标无关的那些方面...Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。

    java 面试题 总结

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble ...

    Java数据存储类型ArrayList、HashSet、HashMap、LinkedList使用不同遍历方法效率研究By Python

    Java不同数据存储类型使用不同遍历方法效率研究 GitHub代码仓库 数据存储类型 ArrayList HashSet HashMap LinkedList 遍历方法 传统遍历方法 for(int i=0;i&lt;list.size();i++) { String str = list.get(i); ... ...

Global site tag (gtag.js) - Google Analytics