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

posted @ 2014-10-29 10:01  caowenyan  阅读(538)  评论(0编辑  收藏  举报