对于在范围 -128 到 127 之间的数值,Java 会使用缓存的 Integer 对象。因此,这些数值的 Integer 对象可以使用
= = 进行比较。
对于不在这个范围的数值,Java 每次可能创建一个新的 Integer 对象。这样,即使两个 Integer 对象代表相同的数值,使用 == 比较也会返回 false,因为它们不是同一个对象。
在 Java 中,对于基本数据类型(如 int, char, double 等),使用 = = 操作符来比较它们的值是否相等是正确的。然而,对于引用类型(如 Integer, String, 等以及其他对象),= = 比较的是两个引用是否指向同一个对象,而不是它们的内容是否相等。