Integer a = 1,等价于Integer a = Integer.valueOf(1);
Integer类内部维护了一个IntegerCache类,用数组维护-128到127之间的Integer值,除非显示声明了java.lang.Integer.IntegerCache.high的值,具体怎么声明,还没有找到。。。
一开始加载Integer类的时候,就初始化了IntegerCache类,Integer.valueOf()方法,如果传入的值是-128到127,会赋值IntegerCache中对应数组的值,如果不在此区间,会重新new一个Integer对象,所以用==会返回false。