JAVA中 (int/Integer + “”)转换成String 执行效率更高?

NuisT_NeO 2009-03-06 04:53:18
今天看见 同事 把 int 转化成 String 时,直接 String = int + "";
他说这种方法效率更高,故我特来求证下。。
相比 Integer.toString() , String.valueOf(int), 究竟哪个最好?
...全文
249 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangpeixv 2009-03-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 NuisT_NeO 的回复:]
刚才试了下,发现 i + "" 是可以的。。

new StringBuilder().append(i).append("").toString() 应该不管 先后顺序的吧。。
[/Quote]
向大家道歉啊
呵呵
确实可以
我的i没有定义所以没有编译过去
我是记得TIJ里提过是不可以的,自己也没有尝试过
NuisT_NeO 2009-03-07
  • 打赏
  • 举报
回复
刚才试了下,发现 i + "" 是可以的。。

new StringBuilder().append(i).append("").toString() 应该不管 先后顺序的吧。。
酒剑仙 2009-03-06
  • 打赏
  • 举报
回复
偷懒是不对的。
而且没有异常检查,到头来自讨苦吃
zhangpeixv 2009-03-06
  • 打赏
  • 举报
回复
String = i + "";
呵呵LZ这样是编译不过去的哦
只能String = ""+i;
这样int的i才会被按字符串来处理啊
大概过程就是LS说的吧
云上飞翔 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 NuisT_NeO 的回复:]
再请教下 String = i + ""; 它的执行过程 是怎样的呢?
[/Quote]
答:执行过程是,按如下的式子执行的:
new StringBuilder().append(i).append("").toString()
Coolfatman 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 NuisT_NeO 的回复:]
谢 ~zhangpeixv, MT502

那么 再请教下  String = i + ""; 它的执行过程 是怎样的呢?
[/Quote]

流程是先把i转换成String,再和 ""拼装,生成一个新对象,肯定是比String.valueOf()慢,不过人感觉不出来。
NuisT_NeO 2009-03-06
  • 打赏
  • 举报
回复
谢 ~zhangpeixv, MT502

那么 再请教下 String = i + ""; 它的执行过程 是怎样的呢?
MT502 2009-03-06
  • 打赏
  • 举报
回复
如果是String = 123 + "";是编译时就能转换的,当然效率高
但是如果是
int i = 123;
String = i + "";
那效率反而没有String.valueOf(int)高
zhangpeixv 2009-03-06
  • 打赏
  • 举报
回复
String.valueOf(int)调用的实际就是Integer.toString()啊
zhangpeixv 2009-03-06
  • 打赏
  • 举报
回复
String.valueOf(int)的源码是这样的


public static String valueOf(int i) {
return Integer.toString(i, 10);
}

LZ判断哪个更高效呢
woainilxt 2009-03-06
  • 打赏
  • 举报
回复
偷懒的做法而已吧,到底哪个效率高到没有测试过,等高手来介绍吧

62,615

社区成员

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

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