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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高双武 黑马帝   /  2011-11-16 09:37  /  2017 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Integer iObj=3;自动装箱即把3封装为对象,装箱过程用new操作符生成对象了吗?这个数值3存在哪里?如果输出iObj的话输出结果是3,既然是引用类型的变量为什么输出地不是地址值?

评分

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

查看全部评分

2 个回复

正序浏览
只要有新的对象生成,就一定是使用new关键字生成的,不管你看见还是没看见,对象存储在堆中。输出的时候应该是调用了tostring()方法,将数字以字符串输出。有可能的话可以查看下Integer的源码,看看ToString()是否是这样的

评分

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

查看全部评分

回复 使用道具 举报
自动转向是产生了对象的,和产生其他对象是一样的。一样也在堆内存中。
打印的时候是默认调用了Integer的toString()方法,这个方法返回一个表示该 Integer 值的 String 对象。将该参数转换为有符号的十进制表示形式,并以字符串的形式返回它,就好像将该整数值作为参数赋予 toString(int) 方法一样。

评分

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

查看全部评分

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