在Integer类内部有一个静态内部类IntegerCache,该类里面利用Integer类型的数组维护了一个缓存池。
当我们创建Integer类型的变量时,例如:
Integer a = 100;Integer b = 100;
反编译后就会发现,实际是调用了Integer的valueof方法。
当IntegerCache类被加载的时候,就会执行类里面的静态代码块。在静态代码块了初始化了缓存池。
缓存池的大小
缓存池最小值是-128,最大值默认是127,不过,这个最大值是可以根据参数调整的,当然了,不能比127小,如果设置的比127小,那么最大值还是127
所以,当我们创建对象
Integer a = 100;
Integer b =100;
比较 a==b;返回值为true