可能重复:
奇怪的Java拳击
嗨,
有人可以解释为什么最后一个打印返回false吗?
int a = 100;
int b = 100;
System.out.println(a == b); // prints true
Integer aa = 100;
Integer bb = 100;
System.out.println(aa == bb); // prints true
Integer aaa = 1000;
Integer bbb = 1000;
System.out.println(aaa == bbb); // prints false
Run Code Online (Sandbox Code Playgroud)
谢谢迈克尔
Ami*_*ani 14
第二个打印评估为true的原因是因为Integer类缓存了前128个Integer对象.你想用.equals