黑马程序员技术交流社区

标题: 自动装箱问题 [打印本页]

作者: 高双武    时间: 2011-11-16 09:37
标题: 自动装箱问题
Integer iObj=3;自动装箱即把3封装为对象,装箱过程用new操作符生成对象了吗?这个数值3存在哪里?如果输出iObj的话输出结果是3,既然是引用类型的变量为什么输出地不是地址值?
作者: 宋文轩    时间: 2011-11-16 10:43
自动转向是产生了对象的,和产生其他对象是一样的。一样也在堆内存中。
打印的时候是默认调用了Integer的toString()方法,这个方法返回一个表示该 Integer 值的 String 对象。将该参数转换为有符号的十进制表示形式,并以字符串的形式返回它,就好像将该整数值作为参数赋予 toString(int) 方法一样。
作者: quanhui    时间: 2011-11-16 10:57
只要有新的对象生成,就一定是使用new关键字生成的,不管你看见还是没看见,对象存储在堆中。输出的时候应该是调用了tostring()方法,将数字以字符串输出。有可能的话可以查看下Integer的源码,看看ToString()是否是这样的




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