理论:
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() 就可以了