// 案例一
Integer numb1 = 127;
Integer numb2 = 127;
System.out.println(numb1 == numb2);
// 结果:true
// 案例二
Integer numb1 = 128;
Integer numb2 = 128;
System.out.println(numb1 == numb2);
// 结果:false
// 案例三
Integer numb1 = new Integer(127);
Integer numb2 = new Integer(127);
System.out.println(numb1 == numb2);
// 结果:false
疑问:值127是true,为什么值128就是false?
因为:-128至127(包括两端)之间的值会存到缓存中。
案例一中的两个变量的值都在在这个范围内,所以都指向缓存中的同一个地址,所以值为true;
案例二中的值超过这范围,所以都会去new一个新的值为128的Integer对象出来,所以就为false