您的位置:首页 > 编程语言 > Java开发

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

2015-07-02 23:15 274 查看
基本数据类型比装箱类型更加节省时间和空间.

<script src="https://code.csdn.net/snippets/730287.js"></script>

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

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

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

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

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

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

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

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

当程序使用==操作符比较装箱类型时,它做同一性比较,这不是我们想要的;当程序涉及装箱和拆箱混合类型计算,它会进行拆箱.有可能会抛出空指针异常;程序装箱的时候,导致高开销和不必要的对象创建.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: