装箱是将一数据类型的值及其类型装到一块内存空间中(这个过程需要重新分配一块内存空间[比较浪费内存资源],故我们应尽可能的避免该操作);即其变为其他object类型的过程;而拆箱的则可视为是将其还原的过程,这过过程是将其类型标识及其数据重新拿出来还原为原状态的过程;
装箱用于在垃圾回收堆中存储值类型,装箱时值类型到object类型或到此值类型所实现的任何接口类型的隐式转换,对值类型装箱会在堆中分配一个对象实例,并将该值复制到新的对象中;
        取消装箱(拆箱)是从object类型到值类型或从接口类型到实现该接口的值类型的显式转换,拆箱的操作包括:1、检查对象实例,以确保它是给定值类型的装箱值;2、将该值从实例复制到值类型变量中;
例如:int i=123;
object o=i;//装箱
int j=(int)o;//拆箱
        提到该变量了,需要说明下:变量的类型可分为:值类型和引用类型;
        其中值类型的操作步骤是(以上述代码为例):在线程堆栈中创建int类型的变量i,并将数据:123传给i,它也在线程堆栈中;然后将装箱步骤,会将123的一个副本及int类型的标识放到托管堆的一块内存空间中(即封装起来),该过程比较浪费资源;而o(object类型)则放在线程堆栈中,而指向123副本的地址值也放在线程堆栈中;到了拆箱,它会先检查对象实例类型是否匹配,然后将123副本在复制一份(我们先视其为123[CC]),然后将123[cc]放到线程堆栈中int类型j的内存空间中;
总结:通过了解装箱和拆箱,我们知道在以后编码的过程中,我们应该尽可能的避免该种操作及类似的操作(比较浪费内存资源),尤其是如果对集合机型装箱和拆箱操作,会严重的影响程序的执行性能。