jdk1.5以后的特性问题
public class Demo01 {
	public static void main(String[] args) {
		Integer num1=new Integer(12);
		Integer num4=new Integer(12);
		Integer num2=12;
		Integer num3=12;
		System.out.println(num1==num4); //false;
		
System.out.println(num1==num2); //false;
		System.out.println(num2==num3); //true;
	}
}
我想知道为什么红色的是false?
------解决方案--------------------
打开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的说明,上面写着原来这个缓存值是可以调的