测试代码
public void test2() {
int i = 40;
int i0 = 40;
Integer i1 = 40;
Integer i2 = 40;
Integer i3 = 0;
Integer i4 = new Integer(40);
Integer i5 = new Integer(40);
Integer i6 = new Integer(0);
Double d1=1.0;
Double d2=1.0;
System.out.println("i=i0\t" + (i == i0)); // 比较值 结果为true
System.out.println("i1=i2\t" + (i1 == i2)); // 使用Integer.valueOf构建对象,内部使用单例模式i1和i2指向了同一个引用,比较引用地址 结果为true
System.out.println("i1=i2+i3\t" + (i1 == i2 + i3));// 调用了intValue的方法比较值,结果为true
System.out.println("i4=i5\t" + (i4 == i5)); // 使用new创建了两个不同的对象,比较引用地址 结果为false
System.out.println("i4=i5+i6\t" + (i4 == i5 + i6)); // 调用了intValue的方法比较值 结果为true
System.out.println("d1=d2\t" + (d1==d2)); // 使用Double.valueOf构建Double对象,比较引用地址 结果为false
System.out.println();
}