关于包装器类的我的问题。情况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
}
}