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

© 迦南 中级黑马   /  2014-8-16 23:48  /  1271 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何理解java中的自动拆装箱?应用场景和使用方式是怎么样的?

4 个回复

倒序浏览
自动拆装箱啊
Integer i = 30;  //自动装箱;i+=20;   //自动拆箱+自动装箱;


回复 使用道具 举报
自动拆装箱是指包装类数据和它对应的基本类型的数据之间自动转化,是一个数据转化的形象比喻。拿Integer和它对应的基本类型int举例说明:
JDK1.5之前,要把int型数据转换成Integer类型数据的话需要借助特定方法,比如:
(1)
int num = 10;
Integer in = new Integer(num);(或者Integer in = Integer.valueOf(num);等)这就是装箱:int-->Integer。
同样,要把Integer类型数据转化为int类型,要借助方法parseInt()等。比如,
(2)
Integer in2 = Integer.valueOf("123");
int num2 = Integer.parse(in2);这是拆箱:Integer-->int.
JDK1.5之后它俩之间的转化不用这么麻烦:
Integer in = 10;就等价于(1)下面的那两句代码。因为等号右面的10默认是int型,以往(JDK1.5前)这样直接给Integer赋值int类型数据是不行的,现在可以直接赋值了,不用上面提到的转化(也就是装箱)了,"装箱"这个动作有虚拟机自动完成,这就是自动装箱的来历,自动拆箱和这个相反,就是(2)的变体,我不多说了,不知这样解释你明白吗?
回复 使用道具 举报
yds35400829 发表于 2014-8-17 01:51
自动拆装箱啊
Integer i = 30;  //自动装箱;i+=20;   //自动拆箱+自动装箱;

多谢,谢谢回答
回复 使用道具 举报
依然超级赛亚人 发表于 2014-8-17 08:58
自动拆装箱是指包装类数据和它对应的基本类型的数据之间自动转化,是一个数据转化的形象比喻。拿Integer和它 ...

回答的很好,很详细,多谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马