Integer instance = new Integer(1)
Integer a = Integer.valueOf(1);
上述表达式主要区别:
两个都是得到一个Integer对象,但是Integer.valueOf的效率高。为什么呢?因为Integer.valueOf用到了缓存。
如Integer.valueOf()源代码:
public static Integer valueOf(int i) {
if(i >= -128 && i <= IntegerCache.high)
return IntegerCache.cache[i + 128];
else
return new Integer(i);
}
当传入的整数i:-128<i<=127时,从缓存里取出整数对应的Integer对象,否则创建一个Integer对象。
Integer a = Integer.valueOf(1);
上述表达式主要区别:
两个都是得到一个Integer对象,但是Integer.valueOf的效率高。为什么呢?因为Integer.valueOf用到了缓存。
如Integer.valueOf()源代码:
public static Integer valueOf(int i) {
if(i >= -128 && i <= IntegerCache.high)
return IntegerCache.cache[i + 128];
else
return new Integer(i);
}
当传入的整数i:-128<i<=127时,从缓存里取出整数对应的Integer对象,否则创建一个Integer对象。