java拆箱和装箱

Posted 文字跳动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java拆箱和装箱相关的知识,希望对你有一定的参考价值。

 1.自动装箱和自动拆箱

   - 指的是原始类型和封装类型相互转换。

 2. 为什么要拥有装箱和拆箱机制?

    - 使java代码更加彻底地面向对象

    - 从jdk1.5以后开始支持,使代码更加简洁,优雅,易懂。

  4. 装箱和拆箱解决了什么问题?

    - 因为java的集合只能存入对象,不支持原始类型,在jdk1.5时需要手工去转换原始类型和封装类型,jdk1.5以后引入装箱和拆箱就可以自动转换了,使代码的便于更加简洁、方便、易懂。

   5.装箱和拆箱的实现过程:

/**
 * 装箱,拆箱
 * 
 * @author szy
 *
 */
public class EncapsulationType {
    public static void main(String[] args) {
        Integer i = 10; // 装箱
        int n = i; // 拆箱
    }
}

使用javap -c 的命令反编译后我们发现:装箱时用了 Integer.valueOf(), 拆箱用了Integer.intValue()

6.值传递
- 原始类型值传递,是将值本身传递过去且原始类型保存在栈中。
- 引用类型传递的时候是将引用传递过去,程序根据这个引用去堆中获取相应的值。引用类型的值保存在堆中,引用变量保存在栈中。




以上是关于java拆箱和装箱的主要内容,如果未能解决你的问题,请参考以下文章

Java中的拆箱和装箱

拆箱和装箱遇到的问题

如何理解Java中的自动拆箱和自动装箱?

如何理解Java中的自动拆箱和自动装箱?

java 1.5 自动拆箱和装箱的注意事项

java Integer类以及拆箱和装箱