Integer与Integer间的比较,从jdk1.5开始,有“自动装箱”机制 比较地址
自动拆箱 :对象包装类和基本数据类型比较 对象包装类拆箱成基本数据类型,比较的是里面的值,不是地址
,在byte-128到127之间,已创建的值,在创建相同值的时候就不会重新创建,而是引用原来那个。
1.Integer和Integer比较
Integer i=128;
Integer i2=128;
System.out.println(i==i2);//false自动装箱过程,超过byte范围则创建新对像 不超过范围 是true
Integer i=new Integer(5);
Integer i2=new Integer(5);
System.out.println(i==i2);//false两个new 两个不同对象 比较地址
Integer i=new Integer (128);
Integer i2=128;
System.out.println(i==i2);//false 不经历拆装箱过程 i的引用指向堆(堆中存放对象)i2指向常量池
2. Integer和int比较
Integer i=new Integer(5);
int i2=5;
System.out.println(i==i2);//true i自动拆箱为i=5, 这是 比较的就是数值