Java 装箱和拆箱

Java boxing and unboxing

我有一个例子,我无法确定装箱和拆箱的数量,发生在下面的 Java 代码中:

int x = 5;
Integer y = x + x;

从我的角度来看,我看到了一种装箱方式(整数 y = x + x)。我错了吗?还有开箱吗?

没有拆箱拳击 正在发生。

首先计算的表达式 x+x 是一个 int 并且 boxedInteger.

所以在整个语句中没有Integerint的转换,因此没有拆箱

根据您的问题,我们首先定义一个 int 值并将其分配给 x 变量(无需装箱拆箱),然后您添加 2 个整数变量,无需装箱拆箱。 现在您将 int 结果分配给 Integer 意味着从原始数据类型更改为非原始数据类型。 Java 自动装箱可以将 int 转换为整数,这里是自动装箱,那里是装箱。