背景和问题

  在看别人整理的资料时,看到如下一段代码:

移动开发培训,Android培训,安卓培训,手机开发培训,手机维修培训,手机软件培训

package com.sitech.test;/**
 * 自动装箱和拆箱 jdk1.6
 * @author liaowp
 * */public class TestInteger {    public static void main(String[] args) {
        Integer i1 = 80, i2 = 80, i3 = 999, i4 = 999;
        System.out.println(i1 == i2);//true
        System.out.println(i3 == i4);//false    }
}

移动开发培训,Android培训,安卓培训,手机开发培训,手机维修培训,手机软件培训

  如果没有看过源码的同学肯定觉的答案要么是2个true要么是2个false。我刚看到这一段代码的时候也觉的是2个true,感觉自己100%确定,不过真正运行之后才发现傻眼了,一个true一个false,这是Bug吧。其实LZ以前看过一部分Integer源码了,但是现在想想好像看的不认真,尴尬了。于是被这个问题触发了LZ要认真看一次Integer源码了(我要认真了,哈哈)。

网友评论