Java拆箱与装箱

1. 包装类型

Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。

包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示

 在这八个类名中,除了Integer和Character类以后,其它六个类的类名和基本数据类型一致,只是类名的第一个字母大写即可。

2. 为什么需要包装类

很多人会有疑问,既然Java中为了提高效率,提供了八种基本数据类型,为什么还要提供包装类呢?

这个问题,其实前面已经有了答案,因为Java是一种面向对象语言,很多地方都需要使用对象而不是基本数据类型。比如,在集合类中,我们是无法将int 、double等类型放进去的。因为集合的容器要求元素是Object类型。

为了让基本类型也具有对象的特征,就出现了包装类型,它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

3. 拆箱与装箱

package com.se.PackageClass;

public class BooleanTest {
    public static void main(String[] args) {
        //boolean Boolean 相互之间的转换
        //boolean --> Boolean 装箱操作
        Boolean b = false;
        Boolean b1 = new Boolean(b); // 装箱操作
        Boolean b2 = b; // 自动装箱操作
        System.out.println(b1);
        System.out.println(b2);

        //Boolean --> boolean 拆箱操作
        boolean b3 = b1.booleanValue(); // 拆箱操作
        boolean b4 = b1; // 自动拆箱操作
        System.out.println(b3);
        System.out.println(b4);
    }
}

参考博客:https://blog.csdn.net/wufaliang003/article/details/82347077

原文地址:https://www.cnblogs.com/LEPENGYANG/p/15027857.html