2015070205 - EffactiveJava笔记 - 第49条 基本类型优于装箱类型(4)

本文深入探讨了Java中基本数据类型与装箱类型的区别,解释了装箱类型带来的性能损耗,并提供了选择使用场景的指导,强调了基本类型在性能优化中的优势。

   基本数据类型比装箱类型更加节省时间和空间.

   <script src="https://code.youkuaiyun.com/snippets/730287.js"></script>

   程序执行起来比预计慢一些,因为把局部变量sum设置为包装类型Long,而并不是基本数据类型long,变量被反复地装箱拆箱,导致性能明显下降.


   上面3个案例中,问题是一样的,那就是程序员忽略了基本类型和装箱类型的差异.

   那么什么时候使用装箱类型呢?

   1.作为集合中的元素,键和值.你不能将基本数据类型放在集合中,必须使用装箱类型.

   2.在泛型中,必须使用装箱类型作为类型参数,因为不允许使用基本数据类型.比如你不能将ThreadLocal<int>类型,必须使用Integer

   3.反射时方法调用,必须使用装箱类型.

   当可以选择的时候,基本类型优于装箱类型,基本类型简洁,快速.

   如果必须使用装箱类型,请小心,自动装箱减少使用装箱类型的繁琐,但是并没有减少风险.

   当程序使用==操作符比较装箱类型时,它做同一性比较,这不是我们想要的;当程序涉及装箱和拆箱混合类型计算,它会进行拆箱.有可能会抛出空指针异常;程序装箱的时候,导致高开销和不必要的对象创建.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值