//装箱是将一个原始数据类型赋值给相应封装类的变量。而拆箱则是将一个封装类的变量赋值给相应原始数据类型的变量。 int i1 = 1; int i2 = 1; Integer integer1 = new Integer(1); Integer integer2 = new Integer(1); //两个变量值相等 System.out.println("1:"+(i1 == i2));// true // integer1拆箱 System.out.println("2:"+(i1 == integer1));// true // i装箱 System.out.println("3:"+integer1.equals(i1));// true // 两个对象地址不一样 System.out.println("4:"+(integer1 == integer2));// false // 两个对象值一样 System.out.println("5:"+integer1.equals(integer2));// true /* 自动装箱规范要求-128=<boolean、byte、char <= 127, 介于-128~127之间的short和int被包装到固定对象中,也就是 说,这些范围内的相同值对应同一个对象 */ Integer integer3 = 10,integer4 = 10; System.out.println("6:"+(integer3 == integer4)); // true Integer integer5 = -129,integer6 = -129; System.out.println("7:"+(integer5 == integer6)); // false Integer integer7 = 128,integer8 = 128; System.out.println("8==地址比较:"+(integer7 == integer8)+"&8.equas值比较:"+integer7.equals(integer8));