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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黑马—杨磊 于 2013-5-21 13:25 编辑

装箱与拆箱操作是不是互逆的操作?

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

4 个回复

倒序浏览
自动拆箱跟装箱是指基本数据类型包装类,当需要把数据当类使用的时候就自动装箱了,拆箱就是相反

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
不是。装箱与拆箱在严格意义上并不是互反操作。拆箱操作的代价要比装箱操作小很多。拆箱操作仅仅是获取指向对象中包含的值类型部分(数据字段)的指针而已,它不会像装箱操作那样涉及到任何内存字节的拷贝。然而,紧接着拆箱之后典型的操作往往就是字段拷贝,这两个操作合起来与装箱操作才成为真正的互反操作

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
不是互逆的操作。
装箱是从值类型转换到引用类型.
拆箱是从引用类型转换到值类型.
虽然从定义上看装箱与拆箱是互逆的操作,但实际上装箱是从任意类型都可以转换为Object类型,而从Object类型拆箱时,需要指定到特定类型。

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
字面上好像是互逆操作,实际上不完全是。
装箱是从值类型转换为引用类型。引用类型是不确定的。可以是string,可以是object或者其他。
拆箱是从引用类型转换为值类型。值类型也是不确定的。可以是int。double。datetime等等。
当然装箱和拆箱可以进行互逆操作。int-----string   string--int  

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马