首页 > 代码库 > valueOf与new的区别

valueOf与new的区别

Integer a = new Integer(1);

Integer b = Integer.valueOf(1);

遇上两句话有什么区别?

请看Integer的源码中关于valueOf的简介:

1 public static Integer valueOf(int i) {2         assert IntegerCache.high >= 127;3         if (i >= IntegerCache.low && i <= IntegerCache.high)4             return IntegerCache.cache[i + (-IntegerCache.low)];5         return new Integer(i);6     }

其中可以看到如果在合适的区间范围内它不回去创建新的对象,而是在IntegerCache中去查找,从而节省时间。

valueOf与new的区别