我是靠谱客的博主 妩媚舞蹈,最近开发中收集的这篇文章主要介绍integer a=128;integer b=128; a==b false,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 a=128;integer b=128; a==b false所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部