黑马程序员技术交流社区

标题: 请问什么是自动装箱? [打印本页]

作者: 隔夜修书    时间: 2014-9-5 23:47
标题: 请问什么是自动装箱?
请问什么是自动装箱?

作者: liaorubei    时间: 2014-9-6 08:27
自动装箱,就是根据基本数据类型创建一个新的对象,基本数据类型是保存的栈内存的,装箱之后就会在堆内存中了。
如下代码
int i=1;//这里还是基本数据类型
Integer ii=i;//在这里就发生了自动装箱,因为Integer不是基本数据类型,是类类型,所以存储在堆内存中的,这时就会发生自动装箱操作了。
Integer i = 10;   //装箱,因为10一开始的时候是基本数据类型,但是赋值给Integer时就发生的装箱
int t = i;             //拆箱,i在定义的时候是Integer,但是t是基本数据类型,的赋值操作进行的时候,自动拆箱了
装箱,拆箱,说白了就是数据是在栈内存还是在堆内存的问题

作者: 彭卫红    时间: 2014-9-6 09:09
1楼回答很好
作者: ┣┫流枫    时间: 2014-9-6 09:20
老毕讲的很好啊   int  和Integer 之间的相互转换
作者: zhangxun    时间: 2014-9-6 09:52
一直不知道如何用语言表达自动装箱和拆箱
作者: 柳超    时间: 2014-9-6 10:10
Java中讲的是万物皆对象
而8种基本数据类型不是对象,所以为了把他们也作成对象就有了八个基本数据类型的引用类型  这个过程就是封装

而以Int为例  我们使用的时候总要把值取出来再运算    然后再封装回去很麻烦,所以Java就作了一个功能,你可以直接使用Integer类型像Int类型那样运算!而运算过程实际就是int数据在进行运算,这个过程就是系统 自动把int值从Integer里面取出来然后运算,然后再把值封装回去!

这个过程就是自动拆箱装箱




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