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中去查找,从而节省时间。

原文地址:https://www.cnblogs.com/dashen/p/4058706.html