执行结果有疑问
来源:2-5 包装类常用方法
杨清川
2021-12-30 17:46:57
相关代码:
public class Test1 {
public static void main(String[] args) {
Integer i11 = 333;
Integer i22 = 333;
System.out.println(i11 == i22);// 输出 false
Integer i1 = 33;
Integer i2 = 33;
System.out.println(i1 == i2);// 输出 true
Integer a = 21;
Integer b = 21;
System.out.println(a == b);// 输出 true
Double i3 = 1.2;
Double i4 = 1.2;
System.out.println(i3 == i4);// 输出 false
}
}问题描述:
第一个和第二个没什么区别呀,为什么结果是不一样的;
包装类型使用==比较的应该是地址值,那为什么还有true的情况呢?
1回答
同学您好,
这里的Integer i1 =33;和 Integer i2 =33,其实隐式的调用了Integer.valueOf()方法,在缓存区是指向的同一块空间,所以结果为true,如图所示:

同学可以回放2-17中的视频,在7分钟出观看即可
https://class.imooc.com/lesson/2067#mid=49117
祝同学学习愉快~
相似问题