Java 包装类的自动封箱与拆箱

自动拆箱与封箱

Integer in = 1;// 自动封箱  Integer in= new Integer(1)
in = in + 5;// 自动拆箱 in.intValue() 与int类型的5进行加运算
System.out.println(in);

数组集合中 集合中的元素只能是引用类型的对象  

import java.util.ArrayList;

ArrayList<Integer> array = new ArrayList<Integer>();
array.add(22);// int类型的22  自动被装箱为 Integer类的对象

自动拆箱与封箱的弊端-空指针异常   要防止引用变量指向null 

自动拆箱与封箱的好处—基本类型和引用类对象两者直接运算

Integer in = null;// java.lang.NullPointerException

面试题

        Integer i = new Integer(200);
        Integer j = new Integer(200);
        System.out.println(i == j); // 地址值的比较  false
        System.out.println(i.equals(j));// 对象值的比较 true
        
        Integer a = new Integer(127);
        Integer b = new Integer(127);
        System.out.println(a == b); // 地址值的比较 false
        System.out.println(a.equals(b));// 对象值的比较 true
        
        Integer m = 127;//m = new Integer(127);  
        Integer n = 127;//n = m 当数据在byte内 JVM不会在堆区开辟新空间  引用对象n 指向的 就是对象m在堆中的内存地址
        System.out.println(m == n); // 地址值的比较 true
        System.out.println(m.equals(n));// 对象值的比较 true
        
        Integer p = 128;//p = new Integer(127);
        Integer q = 128;//q = new Integer(127);
        System.out.println(p == q); // 地址值的比较 false
        System.out.println(p.equals(q));// 对象值的比较 true

猜你喜欢

转载自www.cnblogs.com/cherry2020/p/12903154.html