本次分享来源于一次做题练习,针对这个题目,根据自己的理解做了一下总结。

一、int 和 Integer 数据的比较
众所周知,Integer作为int 的包装类,它拥有自动拆箱和自动装箱的功能,所以除了Integer new 出来的对象之外,只要在[-128,127] 这个范围内,int 和 Integer 之间就可以划等号:
1、new Integer() 相当于在堆中开辟了一片新的空间,对于new 出来的对象,== 比较的是引用地址,故不相等
2、如果数据在[-128,127] 这个范围内,int 和 Integer 可以完成自动的拆装箱,最终得到的结果是一致的,那如果不在这个范围内是否相等呢,以下通过Integer 的源码进行分析。
二、Integer 源码简单分析
首先,通过java api我们知道,当程序执行
Integer i = 100;
的时候会调用 Integer.valueOf(100) 方法,但是我并没有找到源码中调用此方法的地方,通过javap反编译工具,终于发现了端倪:
&nb

这篇博客总结了Integer与int之间的比较,包括自动拆箱、装箱以及在[-128, 127]范围内的等价性。通过源码分析,解释了Integer.valueOf()方法的工作原理,特别是Integer缓存机制,强调了在特定范围内Integer对象的复用以提高性能。"
6962943,1148953,C#图片上传与替换逻辑,"['C#', '文件操作', 'Web开发', '上传控件']
最低0.47元/天 解锁文章
5521

被折叠的 条评论
为什么被折叠?



