关于Integer类的一个有趣的面试问题

相信很多人觉得答案是false,false,因为Integer是一个类,把int类型的数据传给Integer类型的数据会创建一个对象,而a,b,c,d作为引用指向的是不同的地址,所以判断相同得到的结果应该是false

但这个想法就正中下怀了,实际上得到的结果是true,false

为什么呢?因为将int类型的数据转换成Integer类型需要调用Integer类中的静态方法valueOf,而valueOf方法的内部实现是这样的:

简单解释是,在-128到127范围内的int类型的数据要进行转换,直接调用数组中已经存储的数据即可,不在这个范围内的才重新创建新的对象,所以127在这个范围内,引用就直接指向数组中已有的数据即可,所以引用的值相同,而128不在这个范围,就需要重新创建对象,所以两个引用指向的对象不同,值也不同

相关推荐
J2虾虾几秒前
Spring AI Alibaba - 智能体作为工具(Agent Tool)
java·人工智能·spring
Hesionberger1 分钟前
巧用异或找出唯一数字(多解)
java·数据结构·python·算法·leetcode
铁链鞭策大师2 分钟前
javaEE之多线程(2)
java·前端·java-ee
Devin~Y3 分钟前
从内容社区到AIGC客服:Spring Boot、Redis、Kafka、K8s、RAG的三轮大厂Java面试对话(附标准答案)
java·spring boot·redis·spring cloud·kafka·kubernetes·micrometer
Komorebi_99996 分钟前
Day6:微调 vs RAG 场景区分(面试高频)
面试·职场和发展
それども7 分钟前
怎么理解TCP的状态
java·网络·网络协议·tcp/ip·dubbo
英俊潇洒美少年8 分钟前
Vue2 $set 深度解析 + 批量更新全套优化方案(原理+实战+踩坑+面试)
面试·职场和发展·wps
Xzh04238 分钟前
Redis黑马点评 实战复盘与面试高频考点详解
java·数据库·redis·面试
YOU OU12 分钟前
案例综合练习-博客系统
java·开发语言
瑞雪兆丰年兮21 分钟前
[从0开始学Java|第十八、十九天]API(常见API&对象克隆&正则表达式)
java·开发语言