public class IntegerTest { /*** * 对于Integer var = ? 在 -128到127之间的复制,Integer对象是在IntegerCache.cache产生 * 会复用已有对象,这个区间内的Integer值可以直接使用 == 进行判断 * 但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象 * 这是一个大坑,推荐使用equals方法进行判断 * 所有相同类型的包装类对象之间值得比较,全部使用equals */ public static void main(String[] args) { Integer integer1 = 128; Integer integer2 = 128; System.out.println(integer2==integer1); System.out.println(integer2.equals(integer1)); Integer integer3 = -128; Integer integer4 = -128; System.out.println(integer3==integer4); }}