public class IntegerTest {
public static void main(String args[]){
/**
* int == 比较大小
*/
int p1 = 100;
int p2 = 100;
System.out.println(p1==p2);//true
/**
* integer == 比较地址
*/
Integer p3 = new Integer(100);
Integer p4 = new Integer(100);
System.out.println(p3==p4);//false
/**
* integer int == 会先进行 装包
*/
Integer p5 = 10000;
int p6 = 10000;
System.out.println(p5==p6);//true
/**
* Integer在 直接赋值时(如:Integer i= 100),实际上是调用Integer.valueOf(),
* 而Integer.valueOf() 内部会对(-127~128)范围内的数据做缓存,范围内的地址相同,地址外不同
* 所以
* p7==p8 为 true
* p9==p10 为 false
*/
Integer p7 = 100;
Integer p8 = 100;
System.out.println(p7==p8);// true
Integer p9 = 10000;
Integer p10 = 10000;
System.out.println(p9==p10);//false
}
}