1

私はこの問題を解決するためにインターネット全体を見てきました。誰かがこれに正しく答えて、その理由を説明できますか?どうもありがとう!

次のコードを見てください。

Integer myNumber;
myNumber = 5;

次のうち、2番目のステートメントについて正しいものはどれですか?

  1. ステートメントは開箱を実行します

  2. ステートメントは自動ラッピングを実行します。

  3. ステートメントはオートボクシングを実行します。

  4. プリミティブ型をラッパークラスオブジェクトに割り当てることができないため、エラーが発生します。

4

2 に答える 2

5

これはオートボクシングと見なされます。int値を受け取り、それをオブジェクト5に入れます。Integer

開箱は、にをint myInt = myNumber割り当てるときに行われます。(オートボクシングはアンボクシングの反対であることに注意してください。技術的には、アンボクシングとボクシングは反対です。オートボクシングは、JVMがボクシングを処理するときです。手動ボクシングの方法(単語として解釈できる場合)は次のとおりです。IntegerintmyNumber = Integer.valueOf(5);

自動ラッピングは、教授にだまされるための用語のようです。

このような場合、一部の言語はエラーをスローします。Javaはほとんどの同様の状況で動作しますが、プリミティブの場合、特別な例外があります。

于 2012-04-20T00:29:54.833 に答える
1

使用しているJavaのバージョンによって異なります。1.5より前の場合、2番目のステートメントはコンパイル時エラーになります。自動ボクシングの概念は、Java1.5からのみ導入されました。

したがって、Java 1.5以降の場合、2番目のステートメントはオートボクシングを実行します。

于 2012-04-20T01:54:39.873 に答える