注意了,将int定义为Integer会出现Java错误

电子说

1.3w人已加入

描述

在本地项目中跑跑试试看。还是没发现问题,依旧不打印执行完毕的日志。那我就看看是不是判断出问题了。在判断的地方打印出前后比较的值。发现从128开始,128!=128,返回为false。这是什么情况?

128!=128

开始真的认为不可能呀,基本类型比较怎么还出现false了呢。后来一看代码。我把int定义成了Integer。瞬间明白了为什么?

大家都知道Integer是有缓存的,当数值在-128~127之间,是从缓存中取数据。

JAVA

Integer缓存源码

这里给大家做个测试

JAVA

定义Integer

JAVA

定义int

总结:还好当时知道Integer的源码,看见128之后,想到了Integer的缓存,不然真的得找一会原因了。 当你在面临压力面前还能心里不急躁的去找bug是办不到的,所以平时还是需要看看源码,另外 这纯是一种马虎行为。大家在平时开发一定要注意下。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分