//System.out.printf("2 + 2 = %d",2 + 2); //输出:5 //System.out.println(Integer.valueOf(4)); //输出:5 int a = 2; int b = a + a; //在输出的时候,a 和 b 分别装箱成了 Integer 对象, System.out.printf("%d + %d = %d", a, a, b); //输出:5 }
privatestaticclassIntegerCache{ staticfinalint low = -128; staticfinalint high; staticfinal Integer cache[]; static { // high value may be configured by property int h = 127; String integerCacheHighPropValue = sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high"); if (integerCacheHighPropValue != null) { int i = parseInt(integerCacheHighPropValue); i = Math.max(i, 127); // Maximum array size is Integer.MAX_VALUE h = Math.min(i, Integer.MAX_VALUE - (-low) -1); } high = h;
cache = new Integer[(high - low) + 1]; int j = low; for(int k = 0; k < cache.length; k++) cache[k] = new Integer(j++); } privateIntegerCache(){} }