网易首页 > 网易号 > 正文 申请入驻

为什么 Java 中“1000==1000”为false,而“100==100”为true?

0
分享至

这是一个挺有意思的讨论话题。

如果你运行下面的代码


Integer a = 1000, b = 1000;System.out.println(a == b);//1Integer c = 100, d = 100;System.out.println(c == d);//2

你会得到


falsetrue

基本知识:我们知道,如果两个引用指向同一个对象,用==表示它们是相等的。如果两个引用指向不同的对象,用==表示它们是不相等的,即使它们的内容相同。

因此,后面一条语句也应该是false 。面试宝典:https://www.yoodb.com 免费刷题,即将上线

这就是它有趣的地方了。如果你看去看 Integer.java 类,你会发现有一个内部私有类,IntegerCache.java,它缓存了从-128到127之间的所有的整数对象。

所以事情就成了,所有的小整数在内部缓存,然后当我们声明类似——


Integer c = 100;

的时候,它实际上在内部做的是


Integer i = Integer.valueOf(100);

现在,如果我们去看valueOf()方法,我们可以看到


public static Integer valueOf(int i) {if (i >= IntegerCache.low && ireturn IntegerCache.cache[i + (-IntegerCache.low)];return new Integer(i);

如果值的范围在-128到127之间,它就从高速缓存返回实例。

所以…


Integer c = 100, d = 100;

指向了同一个对象。

这就是为什么我们写


System.out.println(c == d);

我们可以得到true。

现在你可能会问,为什么这里需要缓存?

合乎逻辑的理由是,在此范围内的“小”整数使用率比大整数要高,因此,使用相同的底层对象是有价值的,可以减少潜在的内存占用。

然而,通过反射API你会误用此功能。

运行下面的代码,享受它的魅力吧


public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {Class cache = Integer.class.getDeclaredClasses()[0]; //1Field myCache = cache.getDeclaredField("cache"); //2myCache.setAccessible(true);//3Integer[] newCache = (Integer[]) myCache.get(cache); //4newCache[132] = newCache[133]; //5int a = 2;int b = a + a;System.out.printf("%d + %d = %d", a, a, b); //
作者:攻城狮--晴明 https://blog.csdn.net/qq_37267015/article/details/77231572

公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!

最近有很多人问,有没有读者交流群!加入方式很简单,公众号Java精选,回复“加群”,即可入群!

(微信小程序):3000+道面试题,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计等,在线随时刷题!

------ 特别推荐 ------

特别推荐:专注分享最前沿的技术与资讯,为弯道超车做好准备及各种开源项目与高效率软件的公众号,「大咖笔记」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片关注

文章有帮助的话,点在看,转发吧!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
四维空间:无法解释的玄学,很准,照做,不要问为什么

四维空间:无法解释的玄学,很准,照做,不要问为什么

黄河新流域
2024-12-03 13:07:12
13轮激烈讨论,欧盟与中国在电动车关税上达成共识,市场如何变化

13轮激烈讨论,欧盟与中国在电动车关税上达成共识,市场如何变化

蜉蝣说
2024-12-03 16:06:17
米兰的宝!赖因德斯神级传球+飙无敌世界波,现场视角,太惊艳了

米兰的宝!赖因德斯神级传球+飙无敌世界波,现场视角,太惊艳了

侧身凌空斩
2024-12-04 04:55:59
韩军开进首尔!尹锡悦宣布戒严令,遭国会190全票否定

韩军开进首尔!尹锡悦宣布戒严令,遭国会190全票否定

项鹏飞
2024-12-04 01:32:40
有能!范尼执教莱斯特城首秀3-1赢西汉姆,率蓝狐结束5轮不胜

有能!范尼执教莱斯特城首秀3-1赢西汉姆,率蓝狐结束5轮不胜

直播吧
2024-12-04 06:23:05
金高银今天出席在杭州举行的香奈儿大秀,高定衣服,待会见

金高银今天出席在杭州举行的香奈儿大秀,高定衣服,待会见

白宸侃片
2024-12-04 00:02:47
童祥苓去世后续!儿子首发声,去世原因曝光,89岁老伴儿状态揪心

童祥苓去世后续!儿子首发声,去世原因曝光,89岁老伴儿状态揪心

娱乐圈宇桐
2024-12-03 11:37:11
柳州女神莫菁:不雅视频被男友发至网络,后男友入狱,她怎样了?

柳州女神莫菁:不雅视频被男友发至网络,后男友入狱,她怎样了?

阿胡
2024-09-12 21:42:47
36岁河南光棍娶21岁水族姑娘,新婚夜,新郎一下傻眼了

36岁河南光棍娶21岁水族姑娘,新婚夜,新郎一下傻眼了

天字号野史
2024-11-30 10:33:17
造孽!乱港艺人杜汶泽妻子田蕊妮患癌,夫妻躲在台北做自费手术

造孽!乱港艺人杜汶泽妻子田蕊妮患癌,夫妻躲在台北做自费手术

素素娱乐
2024-12-04 07:09:41
微信4.0.1更新,一口气上线6个新功能!

微信4.0.1更新,一口气上线6个新功能!

全是技能
2024-12-03 09:52:37
最新消息:韩国国会主楼的军人已撤出!外部军警被要求撤退!

最新消息:韩国国会主楼的军人已撤出!外部军警被要求撤退!

陈意小可爱
2024-12-04 01:29:02
东风本田推出限时购车政策 CR-V限时起售价13.59万元

东风本田推出限时购车政策 CR-V限时起售价13.59万元

答答买车
2024-12-03 17:23:45
又有两条海底电缆被“破坏”了

又有两条海底电缆被“破坏”了

萍聚德国
2024-12-04 00:59:48
范冰冰饭局照流出,喝酒还吐舌头,素颜温婉大方,和妆后判若两人

范冰冰饭局照流出,喝酒还吐舌头,素颜温婉大方,和妆后判若两人

南城无双
2024-10-25 23:54:18
老夫妻携百万存款回农村,才半年就后悔了:吃顿红烧排骨都得关门

老夫妻携百万存款回农村,才半年就后悔了:吃顿红烧排骨都得关门

热心柚子姐姐
2024-12-01 07:29:31
河南多地发布2025年春节烟花燃放规定:新乡禁放,郑州限放,洛阳正完善禁限方案

河南多地发布2025年春节烟花燃放规定:新乡禁放,郑州限放,洛阳正完善禁限方案

北青网-北京青年报
2024-12-03 18:08:05
网传四川一高校硕士就业率仅为26.98%,博士就业率0,老师急了

网传四川一高校硕士就业率仅为26.98%,博士就业率0,老师急了

火山诗话
2024-12-03 05:54:22
默克尔:32年没发动过战争的中国,是一个温柔且强大的国家

默克尔:32年没发动过战争的中国,是一个温柔且强大的国家

厉羽萱
2023-09-20 23:02:07
超大的巨型国家国土的缺陷:俄罗斯领土太严寒了,出海条件太差了

超大的巨型国家国土的缺陷:俄罗斯领土太严寒了,出海条件太差了

蜉蝣说
2024-12-03 16:27:28
2024-12-04 07:47:00
Java精选
Java精选
一场永远也演不完的戏
1602文章数 3853关注度
往期回顾 全部

科技要闻

美国芯片慎用!中国四大行业协会发声

头条要闻

学者:尹锡悦的戒严令是豪赌 他的总统任期进入倒计时

头条要闻

学者:尹锡悦的戒严令是豪赌 他的总统任期进入倒计时

体育要闻

心里苦!凯恩退出本赛季第一项冠军争夺

娱乐要闻

50岁林志玲生日晒娃引热议

财经要闻

梁建章:建议对生孩子家庭发10万元

汽车要闻

标配Lion5.0科技座舱 风云A8L将于12月17日上市

态度原创

时尚
房产
亲子
游戏
军事航空

星N代赶超贵族后裔,巴黎名媛舞会降级了?

房产要闻

三亚楼市,存量飙升!最新141个住宅盘清单发布!

亲子要闻

妈妈拍到了儿子追小姐姐的全过程,这是高冷姐姐和粘人弟弟的故事

《三角洲行动》详细配置公布 4K需3080

军事要闻

古特雷斯就叙利亚局势发表声明

无障碍浏览 进入关怀版