Integer默认缓存范围为-128到127,直接取这之间的数,会取到缓存池中的相同对象,使用new会强制创建新的对象。
Integer k = 12;
Integer p = 12;
System.out.println(k == p);
Integer kkk = 128;
Integer ppp = 128;
System.out.println(kkk == ppp);
System.out.println(kkk.equals(ppp));
Integer kk = new Integer(12);
Integer pp = new Integer(12);
System.out.println(kk == pp);
运行结果:
true
false
true
false