java Integer类的缓存
public class Hello
{
public static void main(String[] args)
{
int a = 1000, b = 1000;
System.out.println(a == b);
Integer c = 1000, d = 1000;
System.out.println(c == d);
Integer e = 100, f = 100;
System.out.println(e == f);
}
}
输出结果:
true
false
true
The Java Language Specification, 3rd Edition 写道:
为了节省内存,对于下列包装对象的两个实例,当它们的基本值相同时,他们总是==:
Boolean
Byte
Character, \u0000 - \u007f(7f是十进制的127)
Integer, -128 — 127
当超出这个范围时,指向的地址就变了。

浙公网安备 33010602011771号