Integer 与 int 的简单理解(Integer.valueOf()源码解析)

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

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

 

一、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反编译工具,终于发现了端倪:

        

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值