-
我用 == 比较两个明明相等的 Integer,小数值时返回 true、大数值时却返回 false,我对着这个像在看天气的诡异判断查了大半天的深度复盘
我用 == 比较两个 Integer,本以为值相等就 true。结果它像看天气:Integer a=100,b=100 时 a==b 是 true,可 a=1000,b=1000 时却变成 false!同样相等的值,竟因大小不同给出相反结果。深究才懂两件事:一,== 用在对象上比的是引用(是不是同一个对象),不是值;二,Integer 自动装箱有缓存,-128~127 复用同一对象,超出就各 ne…- 0
- 0
-
金额 127 元的订单对账全对,128 元的却全部失败:我在 Java 里被 Integer 的 -128~127 缓存和 == 坑出一身冷汗的对账事故复盘
订单对账系统突然抽风:金额 127 元以下的全部正常,128 元以上的几乎全部判为"金额不一致"被打回。127 和 128 一线之隔命运两端,真凶是我用 == 比较了两个 Integer——而 Integer.valueOf 默认缓存 -128~127,缓存内是同一对象 == 碰巧为 true,缓存外各自 new 出新对象 == 就为 false。这篇复盘从 == 比引用、自动…- 0
- 0
自动装箱
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!


