Integer自动拆装箱
public static void main(String[] args) {
Integer a = 127;
Integer b = 128;
Integer c = new Integer(127);
Integer d = new Integer(128);
Integer e = new Integer(127);
Integer f = new Integer(128);
System.out.println(a == c); //false
System.out.println(c.equals(a));//true
System.out.println(b == d); // false
System.out.println(d.equals(b));//true
// System.out.println(c == e); // false
// System.out.println(d == f); // false
System.out.println("------------");
Integer x = 127; // Integer.valueOf(127)--- 此处装箱返回了是一个cache缓存中的值
// Integer y = 128;
// Integer y = 128 - 1;
Integer y = 128 - new Integer(1);
Integer q = 127;
// Integer w = 128;
// Integer w = 128 - 1;
Integer w = 128 - new Integer(1);
// //此处 127以下的值(127含),此时两个对象型比较时是一致的
// [-128,127] Integer 如果使用这个范围内的值的话,不会创建新对象,装箱动作
System.out.println(x == q);
System.out.println(y == w);
}
public static void main(String[] args) {
Integer a = new Integer(127);
Integer b = new Integer(127);
Integer c = 127; //装箱动作
Integer d = 127;
//TODO
System.out.println(a == b);//false ,堆上两个不同的实际实例
System.out.println(a == c);//false
System.out.println(c == d);// true
Integer x = new Integer(128);
Integer y = new Integer(128);
Integer z = 128;
Integer v = 128;
int u = 128 ;
System.out.println(x == y);
System.out.println(x == z);
System.out.println(z == v);
System.out.println(z == u); // z.intValue()
System.out.println(u == z);
详情请看https://baijiahao.baidu.com/s?id=1661390272276736158&wfr=spider&for=pc
}

浙公网安备 33010602011771号