我是靠谱客的博主 妩媚舞蹈,这篇文章主要介绍integer a=128;integer b=128; a==b false,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
Integer a=100; Integer b=100; Integer c=128; Integer d=128; System.out.println(a==b);//返回true; System.out.println(c==d);//返回false; System.out.println(a.equals(b));//返回true; System.out.println(c.equals(d));//返回true;

之所以100时返回true,而128时返回false,我们需要从源码中寻找答案。
Integer i =100实际在内部做了
Integer i = Integer.valueOf(100) 的操作。
在这里插入图片描述
可以看到low为-128,即if条件需要i在-128和127之间
在这里插入图片描述
而如果if条件不满足则返回new Integer(i),此时没有入缓存,也就是说不在 -128和127范围内的数它们的内存地址是不相同的,这也就解释了为什么 Integer c=128,d=128时候c==d返回false。

在这里插入图片描述

最后

以上就是妩媚舞蹈最近收集整理的关于integer a=128;integer b=128; a==b false的全部内容,更多相关integer内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部