public class TestDemo {
public static void main(String[] args) {
Integer a=100;
Integer b=100;
Integer c=200;
Integer d=200;
System.out.println(a==b); //1
System.out.println(a==100); //2
System.out.println(c==d); //3
System.out.println(c==200); //4
}
}
打印結果為
true
true
false
true
求解 第三個為何為false
jdk內部對int數值有一部分是緩存起來的,使用緩存值的同樣數字Integer都為true,而200超出了緩存的范圍,同樣兩個Integer的200是不同的。
這裡解釋的很清楚:
http://blog.csdn.net/zhoumingp/article/details/8298566