黑马程序员技术交流社区

标题: Integer的问题 [打印本页]

作者: 会飞的狼    时间: 2013-8-9 20:40
标题: Integer的问题
                Integer i = 4;
                System.out.println(i);
                                  输出:4

我的疑问是:i 不是个对象引用吗?输出的怎么不是地址?
作者: 郭利超    时间: 2013-8-9 20:58
System.out.println();  自动调用tostring方法  integer的tostring方法是    返回一个表示该 Integer 值的 String 对象
所以输出打印的是4  此时4是字符串 字符串打印出4 还奇怪么
作者: 黑马王晓明    时间: 2013-8-9 21:11
字符串也可以看做是一个对象
作者: 夜写意    时间: 2013-8-9 21:14
4自动装箱了。在调用的时候又自动拆箱了。如果想要得到地址值可以用i.hashConde()
作者: 会飞的狼    时间: 2013-8-9 21:26
郭利超 发表于 2013-8-9 20:58
System.out.println();  自动调用tostring方法  integer的tostring方法是    返回一个表示该 Integer 值的  ...

不是所有的对象,System.out.println()都自动调用toString吧?
作者: 会飞的狼    时间: 2013-8-9 21:26
夜写意 发表于 2013-8-9 21:14
4自动装箱了。在调用的时候又自动拆箱了。如果想要得到地址值可以用i.hashConde() ...

调用的时候没有拆箱,我没+基本数据类型的值
作者: 郭利超    时间: 2013-8-9 23:05
会飞的狼 发表于 2013-8-9 21:26
不是所有的对象,System.out.println()都自动调用toString吧?

这个方法默认调用 tostring  所有!!!!!!!!!!!!
作者: Mr_Free    时间: 2013-8-9 23:26
JDK 1.5的新特性,可以将基本数据类型自动封装成对象。   Integer i = 4;
为什么返回的是4不是他指向的地址,因为当你调用system.out.println(i);的时候,Integer对象会自动调用toString()方法,因为Integer覆盖了Object类的toString方法,

我帮你复制一下Integer里面的toString()方法
public String toString();返回一个表示该 Integer 值的 String 对象。将该参数转换为有符号的十进制表示形式,并以字符串的形式返回它,就好像将该整数值作为参数赋予 toString(int) 方法一样。

他返回的是对象 以有符号十进制表示,并转换成字符串形式返回。很明显 i 里面的对象是4.所以返回的是字符串形式的"4"  
作者: 会飞的狼    时间: 2013-8-10 00:08
郭利超 发表于 2013-8-9 23:05
这个方法默认调用 tostring  所有!!!!!!!!!!!!

非常感谢




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