黑马程序员技术交流社区

标题: 求大神帮忙解释 [打印本页]

作者: @ne_pie尒ce    时间: 2013-11-8 07:39
标题: 求大神帮忙解释
        public static void main(String[] args) {
               
                Integer i1=50;
                Integer i2=50;
                System.out.println(i1==i2);
               
                Integer i3=150;
                Integer i4=150;
                System.out.println(i3==i4);
                       
        }
运行结果:true
                 false
为什么比较结果不一样?


作者: 黄炳期    时间: 2013-11-8 08:19
小于127的数会存储在常量池里,每次都会到常量池里检查调用的数的对象存在与否,不存在就创建,存在就直接引用。true
大于127的数就会各自创建对象,所以地址的引用不一样。false

作者: 黄炳期    时间: 2013-11-8 08:24
警告:不要频繁发帖,尤其是很小的一些问题~
视频里都有讲解




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