Java基础知识14-自动装箱

Java基础知识14-自动装箱_第1张图片

从 JDK 5 开始, Java 增加了两个重要特性: 自动装箱和自动拆箱.

自动装箱时这样一个过程: 无论何时, 只需要基本类型的对象, 就是自动将基本类型自动封装(装箱)到与之等价的封装器中, 而不需要显式的构造对象.

自动拆箱是当需要时自动抽取(拆箱)已装箱对象的数值的过程. 不需要调用 intValue() 这类的方法.

有了自动装箱特性, 封装基本类型将不必再手动创建对象. 只需要将数值赋给类型封装器引用即可, Java 会自动创建对象. 例如, 下面是构造具有数值 100 的 Integer 对象的现代方式:

Integer iOb = 100;

注意没有使用 new 显式的创建对象. Java 自动处理了这个过程.

为了拆箱对象, 可以简单的将对象引用赋值给基本类型的变量. 例如, 为了拆箱 iOb, 可以使用下面这行代码:

int i = iOb;

表达式中发生的自动装箱/拆箱

通常无论何时, 当需要将基本类型转换为对象或将对象转换为基本类型时, 就会发生自动装箱和拆箱. 对于表达式也是如此. 在表达式中, 数值对象会被自动拆箱, 如果需要的话, 还可以对表达式的输出进行重新装箱.

    public static void main(String[] args) {

        Integer iOb = 100;
        System.out.println("Original value of iOb: " + iOb);

        ++iOb;
        System.out.println("After ++iOb: " + iOb);

    }

输出如下所示:

Original value of iOb: 100
After ++iOb: 101

在这个程序中, 应特别注意下面这行代码:

++iOb;

这会导致 iOb 中的值递增. 具体工作过程如下: 将 iOb 自动拆箱, 将值递增, 然后将结果自动装箱.

你可能感兴趣的:(Java基础知识14-自动装箱)