理論:
IntegerCache 緩存 JAVA的Integer有IntegerCache會緩存-128~127之間的對象。 如:Integer x = 100,會調用Integer的valueOf()方法,這個方法就是返回一個Integer對象,但是在返回前,作了一個判斷,判斷要賦給對象的值是否在[-128,127]區間中,且IntegerCache(是Integer類的內部類,裏面有一個Integer對象數組,用於存放已經存在的且範圍在[-128,127]中的對象)中是否存在此對象,如果存在,則直接返回引用,否則,創建一個新對象返回。
實踐:
Integer a=2; Integer b=2; System.out.println(a==b); Integer c=18; Integer d=18; System.out.println(c==d); Integer e=127; Integer f=127; System.out.println(e==f); Integer g=128; Integer h=128; System.out.println(g==h); Integer i=3; Integer j=3; System.out.println(i==j); 得出 true true true false true
結論
在 [-128,127]區間中 進行匹配用== 是可以的,超過了就會false,可以改成 .equals() 就可以了