装箱与拆箱

Posted springs018

tags:

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

装箱:将基本类型用他们对应的引用类型包装起来

拆箱:将包装类型转换为基本类型

自动拆装箱:

  1. Integer i =10;  //自动装箱  反编译后代码:integer i = Integer.valueOf(10);
  2. int b= i;     //自动拆箱 反编译后代码:int b = i.intValue(); 
  3. 反编译其他包装类型的赋值可以看到,装箱都是用xxx.vauleOf()方法,拆箱都是用xxxValue()方法

除了赋值之外还有其它场景会自动拆装箱,比如:

1.往集合类加入基本类型

List<Integer> list = new ArrayList<>();
for (int i = 0;i < 10;i++)
{
   list.add(i);
}

2.包装类型和基本类型比较

Integer a  = 10;
if(a == 10)
{
   System.out.println("1");
}

3.包装类型运算

Integer a  = 10;
System.out.println(a+1);
boolean flag = true;
int b = flag ? a : 1;

4.函数参数和返回值

public int getNum(Integer a)
{ 
    return a;
}

public Integer getNum1(int a)
{ 
    return a;
}

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

Java 自动装箱与拆箱

了解Java的自动装箱与拆箱

自动装箱与拆箱

C#装箱与拆箱总结

c#装箱与拆箱

详解 Java 中的自动装箱与拆箱,5000+字,看了不懂你打我