代码改变世界

装箱与拆箱

2017-06-04 16:57  Dirichlet  阅读(150)  评论(0编辑  收藏  举报

boxing, unboxing.

装箱,值对象到引用对象的转换,会在堆上分配空间,栈到堆的拷贝,返回新的对象地址。

拆箱,获取装箱对象的的部分字段地址,然后从托管堆到线程堆栈进行拷贝。

拆箱需要判断运行时类型信息。

装箱有内存分配,还有额外内存syncblockIndex和typehandle指针,然后字节拷贝。理论上装箱更费时一些。