黑马程序员技术交流社区

标题: 数据类型转换问题 [打印本页]

作者: 李爱霞    时间: 2011-12-30 09:10
标题: 数据类型转换问题
本帖最后由 李爱霞 于 2011-12-30 09:35 编辑

对于数据类型的的intValue(), parserInt(), valueOf()怎么区别 ,在什么情况下可以更好的使用这几个方法。。。。
作者: 海中的游弋草    时间: 2011-12-30 09:16
static int parseInt(String s)
          将字符串参数作为有符号的十进制整数进行分析。
static Integer valueOf(int i)
          返回一个表示指定的 int 值的 Integer 实例。
static Integer valueOf(String s)
          返回保持指定的 String 的值的 Integer 对象。

从返回值可以看出他们的区别   parseInt()返回的是基本类型int
而valueOf()返回的是包装类Integer  Integer是可以使用对象方法的  而int类型就不能和Object类型进行互相转换

int zhuan=Integer.parseInt(chuan);
int zhuanyi=Integer.valueOf(chuan); 为什么你的程序返回值都可以用int来接收呢?  因为Integer和int可以自动转换
Integer i = 5;   int k  = i;像是这样表示是没有编译错误的
作者: 房宝彬    时间: 2011-12-30 09:33
总的来说,这两种写法的功能是一样的。区别之处,Integer.ValueOf().intValue()   

会比Integer.parseInt()多创建一个Integer对象。   

实际上,如果你看看java的源代码你就知道了:Integer.ValueOf()就是通过parseInt()   

实现的。   

  如下:   

          public   static   Integer   valueOf(String   s)   throws   NumberFormatException   

          {   

                 return   new   Integer(parseInt(s,   10));   

          }   






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2