Integer的128陷阱

简介: Integer的128陷阱

128陷阱指的是,两个Integer数据类型(包装类)在一定范围内用 == 判断,会返回true。这个范围默认就是-128--127

之所以范围是-128--127,我们用int类型赋值给Integer时会自动调用Integer.valueOf()这个方法来赋值给Integer对象,是因为方法的源码中设置了一个Cache数组。

若在这个范围内Integer 变量指向的是这个数组里的一个元素。所以当用==判断的时候返回结果为true。

源码

cache数组的源码

相关文章
|
1月前
四种解决”Arg list too long”参数列表过长的办法
这些方法都可以帮助你避免因参数列表过长而导致的错误。选择方法取决于具体情况和需求。
17 0
|
1月前
|
缓存 算法 Java
“Integer 128陷阱”
“Integer 128陷阱”
|
1月前
|
缓存 Java
什么是Integer128陷阱
什么是Integer128陷阱
|
10月前
|
Java
踩坑-判断Integer相等
踩坑-判断Integer相等
long l = 1;对or错、Long l = 1;对or错,最基础的你对了吗?
long l = 1;对or错、Long l = 1;对or错,最基础的你对了吗?
|
Go 开发者
map 使用细节和陷阱|学习笔记
快速学习 map 使用细节和陷阱
136 0
map 使用细节和陷阱|学习笔记
|
Web App开发 存储 缓存
【译】缓存最佳实践 & max-age的陷阱
【译】缓存最佳实践 & max-age的陷阱
239 0
【译】缓存最佳实践 & max-age的陷阱
|
存储 缓存 Java
Java Integer 缓存特性(Integer最大/小值探究、整型的自动装箱)
Java Integer 缓存特性(Integer最大/小值探究、整型的自动装箱)
237 0
关于String转换list的一些心得(逻辑判断,小白慎入)
关于String转换list的一些心得(逻辑判断,小白慎入)
352 0
|
缓存 Java vr&ar
【BUG日记】【JAVA】使用==判断两个Integer类型的值,发现if语句不起作用(正确做法:使用的判断是equals()去判断)
【BUG日记】【JAVA】使用==判断两个Integer类型的值,发现if语句不起作用(正确做法:使用的判断是equals()去判断)
181 0

热门文章

最新文章