【Java】装箱和和拆箱设计原理

java 装箱和拆箱

  • 装箱:就是自动将基本数据类型转换为包装器类型;
  • 拆箱:就是自动将包装器类型转换为基本数据类型;

Integer i = 5; // 装箱

int j = i; // 拆箱

  • 在装箱的时候自动调用的是 Integer 的 valueOf(int)方法
  • 在拆箱的时候自动调用的是 Integer 的 intValue() 方法。

Integer z = 5;

z+=1;

请问该装箱和拆箱流程是?

z+1==自动拆箱          z=z+1; 自动装箱

示例代码

package com.api.Demo07;

public class Test20 {
    /**
     * 包装类型 实际上是类 new 存放在堆内存中
     * 装箱: 自动将基本数据类型转换为包装类型
     * 拆箱: 自动将包装类型转换为基本数据类型
     */
    public static void main(String[] args) {
        //将基本数据类型60 直接能够赋值给 Integer a 包装类
        Integer a = 60; //60 是基本数据类型int, Integer a 包装类 ——>装箱:基本数据类型->包装类型
        /**
         * 装箱底层
         * Integer.valueOf(基本数据类型60)
         */
        int z = a; //包装类型 赋值给 int 类型——>拆箱:包装类型->基本数据类型
        /**
         * 拆箱底层
         * Integer.intValue()方法获取到 Integer 基本数据类型value
         */
        Integer j = 0;
        j += 1;
        /**
         * 装箱和拆箱流程?
         * j+=1; j=j+1;
         * j(Integer.intValue())+1; //j+1 ->自动拆箱=0+1
         * j+1 的结果赋值给j=0+1,j(包装类型)=(0+1)基本数据类型,Integer j = Integer.valueOf(0+1)自动装箱的过程
         *
         * j+1 自动拆箱 =0+1
         * j=0+1 自动装箱
         */
    }
}

下一篇文章:字符串中的数据排序

你可能感兴趣的:(java,开发语言,装箱,拆箱)