JAVA:使用两个自动装箱值的比较给出了不一致的结果

时间:2015-07-21 18:42:05

标签: java autoboxing

要使用自动装箱并更好地理解它,我在JAVA中开发了这段代码:

public class Autoboxing {

public static void cmp(Integer a, Integer b) {
    if (a < b) System.out.printf("%d < %d\n", a, b);
    else if (a == b) System.out.printf("%d == %d\n", a, b);
    else System.out.printf("%d > %d\n", a, b);
}

public static void main (String[] args) {
    cmp(new Integer(42), new Integer(42));
    cmp(42, 42);
    cmp(128, 128);

}
}

我希望结果是:

42 > 42
42 == 42
128 == 128

但最后一行的实际结果有所不同。它给了我:

128 > 128

这里到底发生了什么,以便原语42表现得像我期望的那样(给我等于结果),但原语128不是?

0 个答案:

没有答案