自动拆装箱机制是jdk1.5版本之后才有的机制,因为用起来很舒心,所以有了语法糖这个说法!(jdk1.5版本之前是手动拆装箱的哈!)
自动装箱:自动将基本类型转换成他对应的包装类型.
自动拆箱:自动将包装类型转换成天对应的基本类型.
public class Test {
public static void main(String[] args) {
//自动装箱
int num = 200;
Integer integer = num;
Integer a = new Integer(20);
Integer b = new Integer(120);
//自动拆箱
int sum = a + b;
System.out.println(sum);
Integer i = 100; //自动装箱
i += 200; //先自动拆箱,再自动装箱
}
}
jdk1.5版本之前是手动拆装箱!
public class Test {
public static void main(String[] args) {
//手动装箱
Integer integer = Integer.valueOf(100);
Integer a = new Integer(5);
Integer b = new Integer(15);
//手动拆箱
int i = a.intValue();
int j = b.intValue();
System.out.println(i + j);
}
}
补充:自动拆装箱里面有一个定律就是自动拆装箱的数字如果大于127,那么俩个对象的地址值不相等,如果小于等于127,那么俩个对象的地址值是相等的!
public class ChaiZhuangXiangTest {
public static void main(String[] args) {
Integer sum1=128;
Integer sum2=128;
Integer sum3=127;
Integer sum4=127;
//Integer中重写了equals方法,重写之后判断的是内容是否相等.所以用==判断地址值是否相等.
System.out.println(sum1==sum2); //false
System.out.println(sum3==sum4); //true
}
}
其原因需要认真查看底层代码实现才能懂! 其详细介绍在这里! ------> 这里这里!
(小编也在努力学习更多哟!以后再慢慢挖掘,慢慢补充啦!)
希望对友友们有所帮助!!!!