public class test9 {
public static void main(String[] args) {
Integer i = 1;
int ii = 1;
System.out.println(i == ii);
Integer i2 = 127;
int i3 = 127;
System.out.println(i2 == i3);
Integer i4 = 128;
Integer i5 = 128;
System.out.println(i4 == i5);
Integer i6 = 130;
int i7 = 130;
System.out.println(i6 == i7);
Integer i8 = new Integer(120);
Integer i9 = new Integer(120);
System.out.println(i8 == i9);
}
// ①无论如何,Integer与new Integer不会相等。
// ②两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false
// java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 =
// Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存
// ③两个都是new出来的,都为false
// ④int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比
}
运行结果:
true
true
false
true
false
转载链接: