自动装箱拆箱测试
/* * 自动装箱拆箱测试 */ public class AutoUnboxingTest { public static void main(String[] args) { Integer a = new Integer(1); Integer b = 1; int c = 1; /* a 指向堆中空间 , 而非new 生成的b指向java的常量池中的对象 Integer b =1编译期间 会翻译成 Integer b = Integer.valueOf(1); 其中valueOf里如果字面量的值在-128到127之间,会缓存,再次使用那么不会new新的Integer对象,而是直接引用常量池中的Integer对象 */ System.out.println(a==b); //false /*Integer a = new Integer(1) 和 int c = 1比较时自动拆箱成int类型*/ System.out.println(a==c); //true /**/ System.out.println(b==c); //true Integer f1 = Integer.valueOf(1); Integer f2 = Integer.valueOf(1); Integer f3 = Integer.valueOf(150); Integer f4 = Integer.valueOf(150); //字面量的值在-128到127之间,那么不会new新的Integer对象,而是直接引用常量池中的Integer对象 System.out.println(f1==f2); //true System.out.println(f3==f4); //false } }