黑马程序员技术交流社区

标题: 装箱与拆箱的问题,求解 [打印本页]

作者: 邓艳秋    时间: 2012-10-4 18:31
标题: 装箱与拆箱的问题,求解
装箱与拆箱到底是干什么用的?有没有人用通俗的语言帮忙解释一下?在哪里要用到这些?可不可以举例说明??
作者: 陈顺亮    时间: 2012-10-4 20:39
把值类型转换为object也引用类型就是装箱,把object类型转换为数据值类型就是拆箱
作者: 郎乐乐    时间: 2012-10-4 20:56
在需要对值和对象进行转换的时候用,在编程的时候有时候需要的是对象,而不仅仅是值。值是存在于栈空间中的,而对象是存在于堆空间中的。
装箱:
  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);
复制代码

作者: 和志强    时间: 2012-10-4 22:41
所有类型都是对象,都派生自System.Object。值类型和引用类型:如果变量是值类型那么这个变量就包含实际的数据。也就是在内存中确实会分配那么一部分空间给这个变量并存储值,引用类型就类似一个类型安全的指针,本身并没有开辟内存空间去存储东西。
而装箱就是将值类型转换为引用类型的过程。相反的过程就叫拆箱
作者: 夏天    时间: 2012-10-4 22:59
通俗点说。比如数字 5  
java没有提供对数字操作的一系列方法。

java提供的方法都封装在对象中,当我需要用对象的方法时。就把 5 这个数字 装箱成对象
这样我就能使用 5这个对象里面的很多方法了。
作者: 秦敖    时间: 2012-10-5 11:51
我的理解,装箱和拆箱操作就是以object为中间量的一种数据类型转换的方式,一种类型→object类型为装箱,object→另一种类型为拆箱。
作者: 雷向阳    时间: 2012-10-5 12:14
简单点说就是值类型和引用类型相互转换的过程,值类型数据是分配在栈中,而引用类型数据分配在堆上。那么如果要把一个值类型数据放到堆上,就需要装箱操作;反之,把一个放在堆上的值类型数据取出来,则需要进行拆箱操作。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2