今天看见 同事 把 int 转化成 String 时,直接 String = int + "";
他说这种方法效率更高,故我特来求证下。。
相比 Integer.toString() , String.valueOf(int), 究竟哪个最好?

解决方案 »

  1.   

    String.valueOf(int)的源码是这样的
     public static String valueOf(int i) {
            return Integer.toString(i, 10);
        }LZ判断哪个更高效呢
      

  2.   

    String.valueOf(int)调用的实际就是Integer.toString()啊
      

  3.   

    如果是String = 123 + "";是编译时就能转换的,当然效率高
    但是如果是
    int i = 123;
    String = i + "";
    那效率反而没有String.valueOf(int)高
      

  4.   

    谢 ~zhangpeixv, MT502那么 再请教下  String = i + ""; 它的执行过程 是怎样的呢?
      

  5.   


    流程是先把i转换成String,再和 ""拼装,生成一个新对象,肯定是比String.valueOf()慢,不过人感觉不出来。
      

  6.   

    答:执行过程是,按如下的式子执行的:
    new StringBuilder().append(i).append("").toString()
      

  7.   

      String = i + "";
    呵呵LZ这样是编译不过去的哦
    只能String = ""+i;
    这样int的i才会被按字符串来处理啊
    大概过程就是LS说的吧
      

  8.   

    刚才试了下,发现 i + "" 是可以的。。new StringBuilder().append(i).append("").toString() 应该不管 先后顺序的吧。。
      

  9.   

    向大家道歉啊
    呵呵
    确实可以
    我的i没有定义所以没有编译过去
    我是记得TIJ里提过是不可以的,自己也没有尝试过