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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 隔夜修书 中级黑马   /  2014-9-5 23:47  /  1662 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问什么是自动装箱?

6 个回复

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

点评

回答的很好,一下子就明白了  发表于 2014-9-6 22:55
回复 使用道具 举报
1楼回答很好
回复 使用道具 举报
老毕讲的很好啊   int  和Integer 之间的相互转换
回复 使用道具 举报
一直不知道如何用语言表达自动装箱和拆箱
回复 使用道具 举报
Java中讲的是万物皆对象
而8种基本数据类型不是对象,所以为了把他们也作成对象就有了八个基本数据类型的引用类型  这个过程就是封装

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

这个过程就是自动拆箱装箱
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马