2014-07-18 117 views
-1

我正在编写一些测试代码,发现一个奇怪的东西,并仍然困惑如何发生这种情况?整数与==的比较

Integer i1 = 220; 
Integer i2 = 220; 

System.out.println(i1 == i2); 

打印效果与预期。但

Integer i1 = 20; 
Integer i2 = 20; 

System.out.println(i1 == i2); 

打印真正,但两者是不同的引用指的是不同的对象(我认为)。

第二段代码打印true

+0

或指http://stackoverflow.com/questions/13098143/java-integer-constant-pool –

+0

一般的教训,虽然是:不这样做。 – biziclop

+0

我明白,平等是为了比较,但为什么要混淆? – Batty

回答