基本数据类型比装箱类型更加节省时间和空间.
<script src="https://code.youkuaiyun.com/snippets/730287.js"></script>程序执行起来比预计慢一些,因为把局部变量sum设置为包装类型Long,而并不是基本数据类型long,变量被反复地装箱拆箱,导致性能明显下降.
上面3个案例中,问题是一样的,那就是程序员忽略了基本类型和装箱类型的差异.
那么什么时候使用装箱类型呢?
1.作为集合中的元素,键和值.你不能将基本数据类型放在集合中,必须使用装箱类型.
2.在泛型中,必须使用装箱类型作为类型参数,因为不允许使用基本数据类型.比如你不能将ThreadLocal<int>类型,必须使用Integer
3.反射时方法调用,必须使用装箱类型.
当可以选择的时候,基本类型优于装箱类型,基本类型简洁,快速.
如果必须使用装箱类型,请小心,自动装箱减少使用装箱类型的繁琐,但是并没有减少风险.
当程序使用==操作符比较装箱类型时,它做同一性比较,这不是我们想要的;当程序涉及装箱和拆箱混合类型计算,它会进行拆箱.有可能会抛出空指针异常;程序装箱的时候,导致高开销和不必要的对象创建.