`Integer a1=128;
Integer a2=128;
System.out.println(a1==a2);
int b1=128;
int b2=128;
System.out.println(b1==b2);`
以上代码的输出是假真正”。有人可以解释以上输出的原因吗?
Integer类为内部整数维护一个内部IntegerCache,默认情况下,该整数的范围是-128至127,并且Integer.valueOf()
方法从该缓存中返回上述范围的对象。因此a == b
返回true,因为a和b都指向同一个对象。