Integer a=100 實際上是執行了 Integer i=Integer.valueOf(100)的操作,Integer類型的范圍是-128~127,當滿足條件時會放入緩存空間中。
public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
而c=1000不在-128~127的范圍內,則會開辟新的內存地址。所以c==d返回為false。