如:int i = 5;那么我要把i转换为字符串 可以是String str = i+"";我想请问下这样转换有什么不好?还有一种转换是String.valueOf(i);他的好处是什么?谢谢,是个面试题目;

解决方案 »

  1.   

    因为String在内存中是一个不可增长的对象,当你使用str+=str时,它会重新new一个新的String,增加了内存,当然时间也就浪费了,String.valueOf()就是转换。
    多说一句:可以使用StringBuffer来替代String
      

  2.   

    public static void main(String[] args)throws Exception {
    int a = 1;
    String s = null;
    System.out.println(new Date().getTime());
    for(int i = 0; i < 1000000; i++){
    s = a + "";
    }
    System.out.println(new Date().getTime());
    for(int i = 0; i < 1000000; i++){
    s = String.valueOf(i);
    }
    System.out.println(new Date().getTime());
    }在1000000次循环的情况下,大约是235ms:110ms左右