解决方案 »

  1.   

    click
      

  2.   


    不对  click  this
      

  3.   

    打开Integer源码一看便知前面省略
    * @since  1.5  <---- 1.5开始啦
         */
        public static Integer valueOf(int i) {
            if (i >= IntegerCache.low && i <= IntegerCache.high)
                return IntegerCache.cache[i + (-IntegerCache.low)];
            return new Integer(i);
        }自动装箱的时候,如果在IntegerCache 实例的范围内,就会直接返回cache里的引用,
    IntegerCache默认状态下缓存 -128至127,所以这个范围内同一个数值的自动装箱引用都一样
    而超出这个范围,生成新的实例,引用自然不一样再看一看IntegerCache的说明,上面写着原来这个缓存值是可以调的
      

  4.   

    凡是new的对象都是重新分配内存地址的,而==比较对象时是比较两个对象的内存地址,当然就是false了,另外,这个地方应该不会自动解包吧