java - 关于第二个陈述,下列哪项是正确的? (拆箱和自动装箱)

标签 java autoboxing unboxing

我在互联网上到处寻找,试图解决这个问题。任何人都可以正确回答这个问题并解释为什么吗?非常感谢!

Look at the following code.

Integer myNumber;
myNumber = 5;

Which of the following is true about the second statement?

  1. The statement performs unboxing

  2. The statement performs autowrapping.

  3. The statement performs autoboxing.

  4. It results in an error because you cannot assign a primitive type to a wrapper class object.

最佳答案

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

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

Autowrapping 似乎是您的教授为了欺骗您而编造的术语。

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

关于java - 关于第二个陈述,下列哪项是正确的? (拆箱和自动装箱),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10238705/

相关文章:

java - 使用 Java 通过 Gmail 发送的问题

java - Spring Boot项目构建路径错误 'basic'

iOS5 Core Data 和 NSNumber 是否有自动装箱/拆箱?

java - 使用三元运算符将 null 作为 int 返回,但 if 语句不允许

java - java自动装箱出错

java - Java 中的 (Integer)y 和 new Integer(y) 有什么区别?

c# - 如何从对象拆箱到它包含的类型,在编译时不知道该类型?

c# - object[] 是否装箱

java - 验证 Collection<byte[]> 与 Mockito 的相等性?

Java Bean 投影