Java:整数相等检查

标签 java integer equality

情况1:

Integer number = 128;
Integer number3 = 128;
System.out.println(number == number3);

情况2:

Integer number = 127;
Integer number3 = 127;
System.out.println(number == number3);

在这种情况下,如果值 > 127,则返回 false,但如果值 < 128,则返回 true。

有人可以解释为什么情况 1 返回 false 而情况 2 返回 true 吗?

最佳答案

发生这种情况是因为 Integer 类为 -128127 之间的值保留了本地缓存。您也可以增加此范围。

关于Java:整数相等检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32246893/

相关文章:

java无法notify()线程?

function - Clojure - 测试函数表达式的相等性?

c# - SequenceEqual 为真但 HashSet.SetEquals 为假

java - 如何在java中添加到队列的开头

java - Spring/Hibernate 截断/删除表中的所有行 - 事务问题

Java从逻辑上理解Java main方法

c++ - 为什么标准同时提供了 is_integer 和 is_exact?

将多个整数转换为单个字符串

c# - 什么是交换 2 个整数变量的 C 代码

java - 为什么 Java 中 (Integer) 222 != (Integer) 222 ?