黑马程序员技术交流社区

标题: 装箱和拆箱是如何实现的? [打印本页]

作者: 资建文    时间: 2012-8-24 02:12
标题: 装箱和拆箱是如何实现的?
装箱和拆箱是如何实现的?
作者: 童兴龙    时间: 2012-8-24 08:09
JDK1.5自动实现的,不需要强制令转换。看看源代码你就懂了。都是加了为你省去了强转指令的。
作者: 许庭洲    时间: 2012-8-24 08:54
   using System;  
   publict  class Test
  {
      public static void Main(String[] args)
      {
           int i = 10;
          //将值类型的i装箱
          //需要注意的是这里的装箱采用的是值的拷贝
          object obj = i;
          //检验是否装箱成功了
          if(obj is int)
          {
                 Console.WriteLine("数据已经装箱!");
          }
          //我们在这里更改i的值
          i = 33;
          Console.WriteLine("int i现在的值是:{0}",i);
          Console.WriteLine("int i装箱的值是:{0}",obj);

          int j = 10;
          object obj = j;
          //C#中的拆箱就是把一个对象类型显式地转换为值类型,
          //注意:要转换的类型必须和值类型是兼容的。
          int k = (int)obj;
          Console.WriteLine("int k现在的值是:{0}",k);
      }
  }
作者: 刘逍遥    时间: 2012-8-24 21:50
引用类型是传递 引用,而值类型是传递值得拷贝。
值类型的装箱,等于是把值类型看成是引用类型的操作,  
值类型的拆箱,等于是取出已装箱的值类型的值
  具体深层次的操作当然是CLR做的操作,
作者: 张文    时间: 2012-8-25 02:07
楼主。你好。CSDN博客有篇详细的解释。你看看。
http://blog.csdn.net/xiven/article/details/5378470




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