执行结果有疑问
来源: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
祝同学学习愉快~
相似问题