⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 toutiao.com/a6769449665579450893 「老徐聊技术」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

前言:双11期间,坐在公司加班,本以为可以坐在那看看日志,打打游戏,聊会天一天就过去了,突然加群里我,为什么我的任务执行了快一上午了,怎么还是是处理中。我随便应付说,可能是数据量大,执行时间长呗,过了2个小时还是没执行完,立即查看日志,发现一个Exception都没有,在看看log中是否打印了执行完毕的输出,发现没有。立马慌了。

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

128!=128

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

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

Integer缓存源码

这里给大家做个测试

定义Integer

定义int

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

文章目录