1

我已经在互联网上寻找并尝试解决这个问题。谁能正确回答并解释原因?太感谢了!

看下面的代码。

Integer myNumber;
myNumber = 5;

关于第二种说法,下列哪项是正确的?

  1. 该语句执行拆箱

  2. 该语句执行自动换行。

  3. 该语句执行自动装箱。

  4. 它会导致错误,因为您无法将原始类型分配给包装类对象。

4

2 回答 2

5

这将被视为自动装箱。它获取int5并将其放入Integer对象中。

取消装箱将是int myInt = myNumber因为它将 an 分配Integerint. (请注意,自动装箱与拆箱相反。从技术上讲,拆箱和装箱是相反的。自动装箱是 JVM 为我们处理装箱的时候。手动装箱的方式(如果可以理解为一个词)是myNumber = Integer.valueOf(5);

自动换行似乎是你的教授用来欺骗你的虚构术语。

在这种情况下,某些语言会抛出错误。Java 在大多数类似的情况下都会这样做,但对于原语,它有特殊的例外。

于 2012-04-20T00:29:54.833 回答
1

这取决于您使用的 Java 版本。如果是 1.5 之前的版本,第二条语句将导致编译时错误。自动装箱的概念是从 Java 1.5 才引入的。

因此,如果是 Java 1.5 及更高版本,则第二条语句执行自动装箱。

于 2012-04-20T01:54:39.873 回答