• Integer类的装箱和拆箱到底是怎样实现的?


    先解释一下装箱和拆箱:

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

      下表是基本数据类型对应的包装器类型:

    int(4字节) Integer
    byte(1字节) Byte
    short(2字节) Short
    long(8字节) Long
    float(4字节) Float
    double(8字节) Double
    char(2字节) Character
    boolean(未定) Boolean

    下面是代码:

    public class BoxAndUnbox {

    /**
    * @param args
    */
          public static void main(String[] args)

        {
          int value=100;

          Integer obj=value; //装箱

          int result=obj*2; //拆箱
          System.out.println(result);

          System.out.println(obj); 

      }

    }


          Sy


       Integer类的装箱和拆箱到底是怎样实现的?

     反编译class文件之后得到如下内容:

      

    由此可见 在装箱的时候自动调用的是Integer的valueOf(int)方法。而在拆箱的时候自动调用的是Integer的intValue方法。

     因此可以用一句话总结装箱和拆箱的实现过程:

      装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 intValue方法实现的.

  • 相关阅读:
    第三十七节 log日志模块
    第三十六节 更新备注信息
    第三十五节 取消关注的股票
    第三十四节 路由添加正则功能以及添加关注功能
    第三十三节 通过带有参数的装饰器完成路由功能
    第三十二节 带有参数的装饰器
    Web_CSS
    Web_HTML
    Python操作MySQL
    MySQL_索引原理
  • 原文地址:https://www.cnblogs.com/aishangtaxuefeihong/p/4886997.html
Copyright © 2020-2023  润新知