黑马程序员技术交流社区

标题: 一个包装类问题 [打印本页]

作者: superjiejie    时间: 2014-11-24 19:16
标题: 一个包装类问题
本帖最后由 superjiejie 于 2014-11-24 19:19 编辑


Integer  i1 = 100;
Integer  i2 = 100;
Integer  i3 = 200;
Integer  i4 = 200;
问 i1  == i2   ?
   i3 == i4 ?
这个是不是和
int  i1 = 100;
int  i2 = 100;
int i3 = 200;
int i4 = 200; 一样么 但是老师说这个什么JDK1.5的新属性 什么的 没听懂 还给我们看了源码 但是没看懂 谁能给说一下

作者: superjiejie    时间: 2014-11-24 19:24
好卡哇 。。。网速不行了 (๑ŐдŐ)b
作者: 船长    时间: 2014-11-24 20:01
享元设计模式
-128到127之间的数值较小,内存会缓存起来,封装为同一个对象,进行共享
即:Integer  i1 = 100;和Integer  i2 = 100;是同以对象
int i3 = 200;和int i4 = 200;则定义了两个对象
作者: wtjohn    时间: 2014-11-24 20:29
楼上已经说清楚了
作者: superjiejie    时间: 2014-11-24 21:01
船长 发表于 2014-11-24 20:01
享元设计模式
-128到127之间的数值较小,内存会缓存起来,封装为同一个对象,进行共享
即:Integer  i1 = 1 ...

这个在哪里讲的?  包装类那里没有哇
作者: 船长    时间: 2014-11-24 21:06
superjiejie 发表于 2014-11-24 21:01
这个在哪里讲的?  包装类那里没有哇

毕老师视频中有讲,张孝祥老师高薪视频中有讲,jdk1.5新特性:自动装箱与拆箱
作者: DamonZh    时间: 2014-11-24 21:07
superjiejie 发表于 2014-11-24 21:01
这个在哪里讲的?  包装类那里没有哇

jdk1.5新特性
作者: wxnzb502    时间: 2014-11-24 21:49
100是属于byte类型的,所以它的定义是在方法区中的常量池,而200已经超过了byte 所以需要在堆内存中定义 地址值不一样
作者: 迷失的小Z    时间: 2014-11-24 22:37
1.5  自动装箱和拆箱  至于为什么i1 ==i2 i3!=i4  是因为byte常量的问题……
作者: FlyFish    时间: 2014-11-25 16:35
superjiejie 发表于 2014-11-24 21:01
这个在哪里讲的?  包装类那里没有哇

13天最后两节




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