A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 会飞的狼 中级黑马   /  2013-8-9 20:40  /  1515 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

                Integer i = 4;
                System.out.println(i);
                                  输出:4

我的疑问是:i 不是个对象引用吗?输出的怎么不是地址?

评分

参与人数 1技术分 +2 收起 理由
滔哥 + 2

查看全部评分

8 个回复

正序浏览
郭利超 发表于 2013-8-9 23:05
这个方法默认调用 tostring  所有!!!!!!!!!!!!

非常感谢
回复 使用道具 举报
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"  

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
会飞的狼 发表于 2013-8-9 21:26
不是所有的对象,System.out.println()都自动调用toString吧?

这个方法默认调用 tostring  所有!!!!!!!!!!!!
回复 使用道具 举报
夜写意 发表于 2013-8-9 21:14
4自动装箱了。在调用的时候又自动拆箱了。如果想要得到地址值可以用i.hashConde() ...

调用的时候没有拆箱,我没+基本数据类型的值
回复 使用道具 举报
郭利超 发表于 2013-8-9 20:58
System.out.println();  自动调用tostring方法  integer的tostring方法是    返回一个表示该 Integer 值的  ...

不是所有的对象,System.out.println()都自动调用toString吧?
回复 使用道具 举报
4自动装箱了。在调用的时候又自动拆箱了。如果想要得到地址值可以用i.hashConde()
回复 使用道具 举报
字符串也可以看做是一个对象

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
System.out.println();  自动调用tostring方法  integer的tostring方法是    返回一个表示该 Integer 值的 String 对象
所以输出打印的是4  此时4是字符串 字符串打印出4 还奇怪么

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马