1. 程式人生 > >比較兩個Integer 物件是否相等

比較兩個Integer 物件是否相等

這個沒什麼好說的,感覺大家看完程式碼和結果就應該明白了,很簡單,但是容易混

程式碼如下--------------------------------

Integer i1 = 100, i2 = 100, i3 = 150, i4 = 150;
Integer i5 = new Integer(100);
Integer i6 = new Integer(100);
Integer i7 = new Integer("100");
Integer i8 = Integer.parseInt("100");
System.out.println(i1 == i2);//true
System.out.println(i3 == i4);//false
System.out.println(i1==i5);//false
System.out.println(i6==i5);//false
System.out.println(i1==i7);//false
System.out.println(i8==i7);//false
System.out.println(i1==i8);//true
System.out.println(i5.equals(i6));//true
System.out.println(i3.equals(i4));//true

----------------------------結果如下

這裡面這要是有一個這個原因 :JVM中一個位元組一下的整型資料(即[128,127])會在JVM啟動時載入進記憶體,所以除非用new Integer()顯示的建立物件,否則都是同一物件,如上面顯示,i1,i2,i8都沒有顯示的建立Integer物件,所以他們三個是相等的,而integer類從寫的equals方法

所以,只要Integer物件的值一樣,返回結果就是相等