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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 萌小子 中级黑马   /  2013-5-14 12:06  /  1667 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王盟盟 于 2013-5-18 10:41 编辑

看视频将java可以自动拆装箱,但不是特别明白。有谁能简单讲讲,要言简意赅的。
麻烦举几个例子好么。

评分

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

查看全部评分

10 个回复

倒序浏览
eycrckag 来自手机 中级黑马 2013-5-14 12:13:22
沙发
一句话,就是自动转成几本数据类型和引用数据类型
回复 使用道具 举报
自动装箱只有在jdk1.5以上版本才有,
Integer in = 5;//装箱 把一个普通数据类类型的数以对象形式存入 这就是装箱
System.out.println(in+4);//拆箱 就是把对象中的数据还原成普通数据类型

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

回复 使用道具 举报
自动装箱:Integer  b= 4;我们知道Integer是一个类,如果想要实例化它的对象的话,只能用new了。但是这里右边直接写的是4,这相当于用4代替了new Integer(4);
               这就是自动装箱。此时这个4是一个对象。
自动拆箱:还是上面的例子,int a = b+3.由于自动装箱后,b 代表着一个对象,按理说不能和3直接进行运算的,但是这里可以用。因为会把b自动换成int 型的4,
               然后再进行+3运算,这就是自动拆箱。

评分

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

查看全部评分

回复 使用道具 举报
自动装拆箱是形象说法,其实就是数据的类型会自动转换
回复 使用道具 举报
飞鸟青崖 发表于 2013-5-14 12:25
自动装箱:Integer  b= 4;我们知道Integer是一个类,如果想要实例化它的对象的话,只能用new了。但是这里右 ...

那自动拆装箱是不是只有基本数据类型才具备?
回复 使用道具 举报
王盟盟 发表于 2013-5-14 12:35
那自动拆装箱是不是只有基本数据类型才具备?

不是基本数据类型的我只知道一个String,
可以类似的定义,但是我不知道这叫不叫自动装箱和自动拆箱。
回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
本帖最后由 xuemeng 于 2013-5-14 19:06 编辑

自动装箱Integer i = 5  实际上java编译器会进行加工   Integer i = Integer.valueOf(5);   虽然我们写的是Integer i = 5, 但是到虚拟机那里, 虚拟机看到的实际上是 Integer i = Integer.valueOf(5);   

自动拆箱  Integer i = 5;      System.out.println(i + 4) ;  其实编译器加工处理   System.out.println(i.intValue() + 4);  变成这样, java虚拟机看到的就是这个样子!!!


至于有那些可以自动拆箱装箱, 基本类型数据都可以,   

我上个图  

未命名.jpg (32.9 KB, 下载次数: 0)

未命名.jpg

评分

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

查看全部评分

回复 使用道具 举报
Sword 金牌黑马 2013-5-18 10:39:24
10#
如果问题未解决,请继续追问,如果问题解决了,请点击你的帖子下面的"编辑"重新编辑帖子,将分类改为“已解决”,谢谢合作!
回复 使用道具 举报
如果问题已经解决了,那么大家请把帖子的类型改为“已解决”,在自己帖子的左下角点编辑,然后选择帖子的分类进行改正。{:soso_e163:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马