黑马程序员技术交流社区

标题: 这个地方有点不理解, [打印本页]

作者: 939676244    时间: 2013-9-23 14:12
标题: 这个地方有点不理解,
本帖最后由 939676244 于 2013-9-23 19:07 编辑

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

i3和i4就不相等呢

作者: yting_xmei1129    时间: 2013-9-23 14:44
这个、、、、、、一行代码一行代码的分析、、、

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、、、、、、、、、、、、、、、、、、、、、





作者: 939676244    时间: 2013-9-23 15:31
你是说158不会放到缓冲区那放到哪  {:soso_e110:}
作者: 酱爆    时间: 2013-9-23 15:54
939676244 发表于 2013-9-23 15:31
你是说158不会放到缓冲区那放到哪

一个字节以内的  -128~127 才会

作者: 黄文伯    时间: 2013-9-23 18:30
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~
作者: yting_xmei1129    时间: 2013-9-23 18:34
就直接使用了呗!不放到缓冲区去了,不然太浪费内存了、、、
作者: 939676244    时间: 2013-9-23 19:05
黄文伯 发表于 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, 下载次数: 18)

B6R~P_8@1)~BW)N174]M1[1.gif





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2