A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 939676244 中级黑马   /  2013-9-23 14:12  /  1614 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 939676244 于 2013-9-23 19:07 编辑

Integer i1 = 12
Integer i2 = 12
Integer i3 = 158
Integer i4 = 158
为什么i1 和i2 相等,

i3和i4就不相等呢

6 个回复

倒序浏览
这个、、、、、、一行代码一行代码的分析、、、

Integer i1 = 12;  12会被存到内存缓冲区中去,占一个字节,缓冲区(1个字节)
Integer i2 = 12;会去内存中缓冲区去找有没有12,发现找到了,所以  i1 跟 i2 的引用一样,所以 i1==i2 为true
再来看下面的
Integer i3 = 158   因为158 一个字节存不下,不会放到缓冲区去
Integer i4 = 158  同理158大于一个字节了,缓冲区找不到,所以 i3 跟 i4 的引用不一样,所以 i3 == i4 为 false

主要是为了节约内存,缓冲区会有一个字节用来存数据的

希望可以帮到楼主、、、还不懂的话可以问饿、、、

The you smile until forever、、、、、、、、、、、、、、、、、、、、、




评分

参与人数 1技术分 +1 收起 理由
黄文伯 + 1 25分!撒花撒花!

查看全部评分

回复 使用道具 举报 1 0
你是说158不会放到缓冲区那放到哪  {:soso_e110:}
回复 使用道具 举报
939676244 发表于 2013-9-23 15:31
你是说158不会放到缓冲区那放到哪

一个字节以内的  -128~127 才会
回复 使用道具 举报
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~
回复 使用道具 举报 1 0
就直接使用了呗!不放到缓冲区去了,不然太浪费内存了、、、
回复 使用道具 举报
黄文伯 发表于 2013-9-23 18:30
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~ ...

[img]file:///C:\Users\ADMINI~1\AppData\Local\Temp\B6R~P_8@1)~BW)N174]M1[1.gif[/img]

B6R~P_8@1)~BW)N174]M1[1.gif (36.18 KB, 下载次数: 8)

B6R~P_8@1)~BW)N174]M1[1.gif
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马