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


