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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 资建文 中级黑马   /  2012-8-24 02:12  /  3242 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

装箱和拆箱是如何实现的?

4 个回复

倒序浏览
JDK1.5自动实现的,不需要强制令转换。看看源代码你就懂了。都是加了为你省去了强转指令的。
回复 使用道具 举报
   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);
      }
  }
回复 使用道具 举报
引用类型是传递 引用,而值类型是传递值得拷贝。
值类型的装箱,等于是把值类型看成是引用类型的操作,  
值类型的拆箱,等于是取出已装箱的值类型的值
  具体深层次的操作当然是CLR做的操作,
回复 使用道具 举报
楼主。你好。CSDN博客有篇详细的解释。你看看。
http://blog.csdn.net/xiven/article/details/5378470
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马