java中数字转换字符串问题

「已注销」 2012-03-05 08:35:43
如:int i = 5;那么我要把i转换为字符串 可以是String str = i+"";我想请问下这样转换有什么不好?还有一种转换是String.valueOf(i);他的好处是什么?谢谢,是个面试题目;
...全文
525 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
安特矮油 2012-03-06
  • 打赏
  • 举报
回复
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左右
「已注销」 2012-03-06
  • 打赏
  • 举报
回复
因为String在内存中是一个不可增长的对象,当你使用str+=str时,它会重新new一个新的String,增加了内存,当然时间也就浪费了,String.valueOf()就是转换。
多说一句:可以使用StringBuffer来替代String
walkman_22 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 nizhenfeng 的回复:]
因为String在内存中是一个不可增长的对象,当你使用str+=str时,它会重新new一个新的String,增加了内存,当然时间也就浪费了,String.valueOf()就是转换。
多说一句:可以使用StringBuffer来替代String
[/Quote]
学习。
昨日凡阳 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 acesidonu 的回复:]

引用 1 楼 nathan_java 的回复:

第一个要进行字符链接运算,增加运算时间

++
[/Quote]

Acesidonu 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nathan_java 的回复:]

第一个要进行字符链接运算,增加运算时间
[/Quote]
++
nathan_java 2012-03-05
  • 打赏
  • 举报
回复
第一个要进行字符链接运算,增加运算时间

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧