integer的创建问题
Integer i = 1;Integer i2 = 1;
这种创建类型,i在堆中是否有对象
有对象,Integer i = 1相当于是Integer i = Integer.valueOf(1),这个valueOf方法会判断传入的整型参数的值是否在[-128,127]范围内,在的话,直接赋值IntegerCache里的一个对象,而这个对象是在加载类的时候就已经创建的(静态代码块执行)。
Integer i2 = 1同上,所以i2 == i 为true。
你可以参考String类,都是引用类型