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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邓艳秋 中级黑马   /  2012-10-4 18:31  /  2316 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

装箱与拆箱到底是干什么用的?有没有人用通俗的语言帮忙解释一下?在哪里要用到这些?可不可以举例说明??

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

6 个回复

倒序浏览
把值类型转换为object也引用类型就是装箱,把object类型转换为数据值类型就是拆箱

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
在需要对值和对象进行转换的时候用,在编程的时候有时候需要的是对象,而不仅仅是值。值是存在于栈空间中的,而对象是存在于堆空间中的。
装箱:
  1. int val = 100;  
  2. object obj = val;  
  3. Console.WriteLine (“对象的值 = {0}", obj);
复制代码
拆箱:
  1. int val = 100;  
  2. object obj = val;
  3. nt num = (int) obj;  
  4. Console.WriteLine ("num: {0}", num);
复制代码
回复 使用道具 举报
所有类型都是对象,都派生自System.Object。值类型和引用类型:如果变量是值类型那么这个变量就包含实际的数据。也就是在内存中确实会分配那么一部分空间给这个变量并存储值,引用类型就类似一个类型安全的指针,本身并没有开辟内存空间去存储东西。
而装箱就是将值类型转换为引用类型的过程。相反的过程就叫拆箱

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
通俗点说。比如数字 5  
java没有提供对数字操作的一系列方法。

java提供的方法都封装在对象中,当我需要用对象的方法时。就把 5 这个数字 装箱成对象
这样我就能使用 5这个对象里面的很多方法了。
回复 使用道具 举报
我的理解,装箱和拆箱操作就是以object为中间量的一种数据类型转换的方式,一种类型→object类型为装箱,object→另一种类型为拆箱。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
简单点说就是值类型和引用类型相互转换的过程,值类型数据是分配在栈中,而引用类型数据分配在堆上。那么如果要把一个值类型数据放到堆上,就需要装箱操作;反之,把一个放在堆上的值类型数据取出来,则需要进行拆箱操作。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

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