关于Integer的比较大小问题即到底是用“==”还是“equals”来比较大小

今天上班做项目的时候,经理说凡是 Integer 的类型的整数在比较大小的时候都用"equals.()",不能用"==",即是前者可能在性能上稍逊于后者,但是用后者的话存在bug的可能性,当时自己就一头雾水了,后来查了一下源码才知道,当Ingeter类型的整数在-128到127的范围时,在比较大小的时候直接用的int原始数据类型,所以这个时候无论用 '' equals.() " 还是 " == " 都会返回true(当然前提是两个比较大小的数在数值上要相等),但是超出这个范围(-128~127)之后在比较大小的时候是返回一个新的Integer对象的,这个时候两个要比较大小的数在数值上 虽然大小相等,但是不是同一个对象,所以在比较时,用"=="会返回莫名其妙让你摸不着头脑的"false",所以如果你期望返回的是"true",那就请用"equals.()"来比较大小吧,(如果你只希望比较这两个数的数值大小,而不考虑是否同属一个对象),这就是我今天上班的总结,也希望在日后的项目中能起到借鉴作用....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值