a==1&&a==2&&a==3 一定是false?
实验证明:通过反射动态修改IntegerCache的[-128, -127] 区间里的256个数字值可以使
a==1&&a==2&&a==3
变为true
@Test
public void t5() throws Exception {
Class clazz=Integer.class.getDeclaredClasses()[0];
Field c = clazz.getDeclaredField("cache");
c.setAccessible(true);
//array就是一个[-128, -127]的数组, array[0]是-128
Integer[] array=(Integer[]) c.get(clazz);
array[130]=array[129];
array[131]=array[129];
Integer a=1;
System.out.println(a==(Integer)1&&a==(Integer)2&&a==(Integer)3);
System.out.println("2的值:"+(Integer)2+"\n3的值:"+(Integer)3);
}