Java的8种基本类型(Byte, Short, Integer, Long, Character, Boolean, Float, Double), 除Float和Double以外, 其它六种都实现了常量池, 但是它们只在大于等于-128并且小于等于127时才使用常量池
比如:
Integer a = 100;
Integer b = Integer.valueOf(100);
a equals b;
Integer c = new Integer(100);
则 c != a && c != b;
Integer类的valueOf方法:
public static Integer valueOf(int i) {
if(i >= -128 && i <= IntegerCache.high)
return IntegerCache.cache[i + 128];
else
return new Integer(i);
}
比如:
Integer a = 100;
Integer b = Integer.valueOf(100);
a equals b;
Integer c = new Integer(100);
则 c != a && c != b;
Integer类的valueOf方法:
public static Integer valueOf(int i) {
if(i >= -128 && i <= IntegerCache.high)
return IntegerCache.cache[i + 128];
else
return new Integer(i);
}
本文探讨了Java中8种基本类型中的6种实现常量池机制的情况,特别是Integer类型的valueOf方法如何根据特定范围(-128到127)来决定是否使用缓存池。此外,还通过示例说明了不同Integer实例之间的比较结果。

被折叠的 条评论
为什么被折叠?



