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

时间:2012-04-20 00:28:28

标签: java autoboxing unboxing

我已经遍布互联网试图解决这个问题。任何人都可以正确回答并解释原因吗?非常感谢你!

  

请查看以下代码。

Integer myNumber;
myNumber = 5;
     

关于第二个陈述,以下哪一项是正确的?

     
      
  1. 该声明执行拆箱

  2.   
  3. 该语句执行自动包装。

  4.   
  5. 该声明执行自动装箱。

  6.   
  7. 由于您无法分配基本类型,因此会导致错误   到包装类对象。

  8.   

2 个答案:

答案 0 :(得分:5)

这将被视为自动装箱。它需要int5并将其放在Integer对象中。

取消装箱将为int myInt = myNumber,因为它会为Integer分配int。 (请注意,自动装箱与拆箱相反。从技术上讲,拆箱和装箱是对立的。自动装箱就是当JVM为我们处理装箱时。手动箱的方式(如果可以作为一个单词)是{{ 1}}

自动包装似乎是一个让你的教授欺骗你的术语。

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

答案 1 :(得分:1)

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

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