双重字面结果错误

时间:2019-02-28 04:56:48

标签: java integer double wrapper

关于包装器类的我的问题。情况1:我声明了两个Integer变量并分配了相同的值 127 ,并且我正在打印两个hashCode。它生成了相同的hashCode,结果将被打印true。但是在情况2中:生成了相同的hashCode,但结果是打印false。请您谈谈。为什么要打印false结果。

package com.oca.test.exam;

public class TestCasesIntegerAndDouble {

    public static void main(String[] args) {

        //Case 1:
        Integer i1 = 127;
        Integer i2 = 127;

        System.out.println(i1.hashCode()); //127
        System.out.println(i2.hashCode()); //127
        System.out.println(i1 == i2); //true

        //Case 2:
        Double d1 = 127.0;
        Double d2 = 127.0;

        System.out.println(d1.hashCode());//1080016896
        System.out.println(d2.hashCode());//1080016896
        System.out.println(d1 == d2); //false
    }
}

0 个答案:

没有答案