日期:2014-05-17  浏览次数:20661 次

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

------解决方案--------------------
因为String在内存中是一个不可增长的对象,当你使用str+=str时,它会重新new一个新的String,增加了内存,当然时间也就浪费了,String.valueOf()就是转换。
多说一句:可以使用StringBuffer来替代String
------解决方案--------------------
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左右