【夯实基础】Java 自动拆装箱的避坑

21 篇文章 0 订阅
本文探讨了Java中基本数据类型的包装类在等值比较、空指针问题和自动转换时需要注意的事项。在进行等值比较时,由于Integer、Long等是引用类型,应使用equals而非==。包装类可能导致空指针异常,特别是在字段未初始化时。此外,不同数据类型混合运算时,会按照数据类型转换规则进行,从低级别到高级别转换。了解这些细节对于避免编程中的错误至关重要。
摘要由CSDN通过智能技术生成

众所周知,Java的8种基本数据类型,byte(字节型)、short(短整型)、int (整型) 、long(长整型)、float(单精度浮点型)、double(双精度浮点型)、boolean(布尔型)、char(字符型)有着其对应的包装类,虽然扩展了基本数据类型的能力,但是也有要避免的坑。

【等值比较】

!!! 装箱后,Integer,Long等是引用类型,等值比较应该使用 equals方法,而不是==,虽然在-128~127之间的数可以直接比较,原因是Integer,Long维护了IntegerCache与LongCache,在==比较的时候,使用的cache的值。

【空指针问题】

还是因为包装类为引用类型的问题,如果作为字段的时候,未初始化或者0值null得时候,引用的空地址,引发空指针异常。
【自动转换问题】

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

转换从低级到高级。

低  ------------------------------------>  高

byte,short,char—> int —> long—> float —> double 

初学者很多时候,不注意,导致在使用的过程中容易出现疑问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值