装箱拆箱

装箱操作:将值类型转换为引用类型
拆箱操作:将引用类型转换为值类型

装箱步骤:

  1. 内存分配:在托管堆中分配好内存空间以存放复制的实际数据。
  2. 完成实际数据的复制:将值类型实例数据复制到新分配的内存中。
  3. 地址返回:将托管堆中的对象地址返回给引用类型变量

拆箱操作:

  1. 检擦实例:首先检查要进行拆箱操作的引用类型变量是否为null,如果为null抛出异常,不为null则继续检查变量是否和拆箱后的类型是同一类型,如不是,则抛出异常
  2. 地址返回:返回已装箱变量的实际数据部分的地址
  3. 数据复制:将托管栈中的实际数据复制到栈中

装箱拆箱对性能有很大的影响:

  1. 如果程序代码中存在过多的装箱和拆箱操作,由于两个过程都需要数据复制,该操作将会消耗大量额外运行的时间。
  2. 并且装箱拆箱过程中必然会产生对于的对象,这步加重了GC垃圾回收的负担,导致性能降低
  3. 还可能引发一些潜在的bug

解决办法:在于数据类型的确定,不要轻易对数据类型进行转换操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值