1. 程式人生 > >關於Integer數值大於127時使用等號比較時的坑

關於Integer數值大於127時使用等號比較時的坑

  • Integer的值在-128到127時,Integer物件是在IntegerCache.cache產生,會複用已有物件,也就是說,這個區間的Integer可以直接用等號進行判斷。
  • Integer的值在-128到127之外時,Integer物件在堆上產生,不會複用已有物件,用等號會返回false。
  • 建議老老實實用equals()方法來比較Integer物件。
Integer a=12;
Integer b=12;
System.out.println(a==b);//true
		
Integer c=1222;
Integer d=1222;
System.out.println(c==d);//false