我从一本没有解释结果的 Java 书中得到以下代码。我运行了它并得到了下面内联的结果,但我需要帮助来理解结果:
1. Integer i = -10;
2. Integer j = -10;
3. System.out.print(i==j); // ==> true
4. System.out.print(i.equals(j)); // ==> true
5. Integer n = 128;
6. Integer m = 128;
7. System.out.print(n==m); // ==> false
8. System.out.print(n.equals(m)); // ==> true
我的问题是:
- 为什么第 3 行解析为 true?它们不是两个独立的对象吗?
- 如果第 3 行为真,为什么第 7 行不为真?
如果提前谢谢。
最佳答案
参见 Integer.valueOf(int i)
源代码。
它缓存(使用整数池)-128 到 127 之间的整数(这些是默认值,可以通过 java.lang.Integer.IntegerCache.high
自定义)
关于java - 在 Java 中比较整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13672686/