Integer和int类型的比较!

请问为什么结果为true啊,不是说int范
围只能在-128到127吗之间吗?

img

你通过反编译就知道了 - Integer和int类型用 == 比较的时候 Intege会自动拆箱调用intValue 也就是字面量的值

你如果是两个Integer类型的对象用 == 比较内存地址 那么是 调用Integer.valueOf 里边有个IntegerCache 缓存 缓存的是 -128~127的对象 这里边是相等的

img

-128到127 是byte的范围,不是int

int范围是-2^31 --- 2^31-1,你记差了!你说的是byte范围

当int和Integer进行比较,是拆箱装箱的过程,值相等==就是TRUE