值类型的变量包含自身的数据,而引用类型的变量是指向数据的内存块的,并不是直接存放数据。对于值类型,每个变量都有一份自己的数据复制,对另一个值类型变量的操作并不影响这一个变量的值。 而对于引用类型,两个变量有可能引用同一对象,因此对一个变量的操作会影响到另一个变量。
如果要把一个值类型数据放到堆上,就需要装箱操作;反之,把一个放在堆上的值类型数据取出来,则需要进行拆箱操作。
取消装箱是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。 取消装箱操作包括:
检查对象实例,以确保它是给定值类型的装箱值。
将该值从实例复制到值类型变量中。
原文地址:http://blog.csdn.net/chuwachen/article/details/37816215