java – 比较2个整数,奇怪的行为
发布时间:2020-12-15 04:24:19 所属栏目:Java 来源:网络整理
导读:参见英文答案 Why is 128==128 false but 127==127 is true when comparing Integer wrappers in Java?????????????????????????????????????6个 我写了简单的代码: public static void main(String[] args) { Integer i1 = 127; Integer i2 = 127; boolean
参见英文答案 >
Why is 128==128 false but 127==127 is true when comparing Integer wrappers in Java?????????????????????????????????????6个
我写了简单的代码: public static void main(String[] args) { Integer i1 = 127; Integer i2 = 127; boolean flag1 = i1 == i2; System.out.println(flag1); Integer i3 = 128; Integer i4 = 128; boolean flag2 = i3 == i4; System.out.println(flag2); } 但是,奇怪的是,结果如下: true false 你能解释一下为什么会出现这种差异吗? 解决方法Integer s是对象,==运算符可能“工作”(在你期望它的意义上 – 比较值)仅适用于[-128,127]之间的数字.看看
JLS – 5.1.7. Boxing Conversion:
您要比较的值不在范围内,结果将评估为false.您应该使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |