今天看JAVA Integer类型的源代码时,对里面的一个设计不太明白,特来请教大家
private static class IntegerCache {
private IntegerCache(){}
static final Integer cache[] = new Integer[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Integer(i - 128);
}
}
在其中的static final Integer cache[] = new Integer[-(-128) + 127 + 1]里面
为什么要设计成-(-128),这样的设计有什么好处
private static class IntegerCache {
private IntegerCache(){}
static final Integer cache[] = new Integer[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Integer(i - 128);
}
}
在其中的static final Integer cache[] = new Integer[-(-128) + 127 + 1]里面
为什么要设计成-(-128),这样的设计有什么好处