装箱和拆箱

主要涉及到性能的损失

装箱,是把stack里面的值类型,变成一个object的实例,放在heap中。然后在stack里面存储实例的地址。属于隐式类型转换,不丢失精度,但是会损耗性能。

拆箱,是把heap里的实例的数据,搬出来变成值类型,放在stack中,属于显式类型的转换

 

int x=100;//下面是内存的情况,是放在stack中的

object obj;//这边图片里object的数据多了一个字节,不好意思

obj=x;//这句话先在Heap里面开辟一个地址,把stack中的100放进去,然后把地址也就是000000113放入原来obj引用参数的内存中,装箱完成。

int y=(int)obj;//拆箱把heap中的值按照要求也就是int 又搬到了stack中

 

 

 

posted @ 2019-07-14 20:19  拎着红杯子的黄鸭子  Views(110)  Comments(0Edit  收藏  举报