转载:https://blog.csdn.net/qq_36852780/article/details/90299164
java当中,对于"=="符号肯定不陌生,总的来讲:==比较的是值是否相等
相关文章:Java中==与equals()方法的区别
基本数据类型:数值大小是否相等
引用数据类型:对象的引用地址的值是否相等
可是,
int i0 = 59;
Integer i1 = new Integer(59);
i0 == i1 ; 是否相等呢?
第一感觉肯定认为是false;可是经测试结果为true.
这时候肯定是有点懵,一个基本数据类型和一个引用数据类型比较怎么可能是true呢?
int i0 = 59;
Integer i1 = 59;
Integer i2 = new Integer(59);
Integer i3 = new Integer(59);
Integer i4 = Integer.valueOf(59);
i0 == i1: true
i0 == i2: true
i1 == i2: false
i2 == i3: false
i0 == i4: true
i1 == i4: true
i2 == i4: false
Integer i5 = 128;
Integer i6 = Integer.valueOf(128);
i5 == i6 false
Integer包装类型在和基本数据类型比较时,jvm会自动把包装数据类型拆箱为基本数据类型int