2
int[] array = new int[10];
for (int i = 0; i < array.length; i++) {
    array[i] = 0;
}

この例では、値 0 はプリミティブまたはオブジェクトとして配列内に格納されていますか?

どうもありがとう

4

2 に答える 2

5

この場合、値はプリミティブとして格納されます。タイプをプリミティブのラッパー Integerに変更すると、値は「自動ボックス化」されObjectます。たとえば、次のコードは値を自動ボックス化します。

Integer[] array = new Integer[10];
for (int i = 0; i < array.length; i++) {
    array[i] = 0;
}
于 2012-05-11T14:22:16.757 に答える
2

Java には、プリミティブの配列とオブジェクトの配列の両方があります。

int[]はプリミティブの配列であるため0、プリミティブとして格納されます。

対応するオブジェクト配列の型はInteger[]です。このような配列に格納0すると、オブジェクトに「自動ボックス化」されIntegerます。

Java コンテナー (およびその他のジェネリック クラス) は、オブジェクトのみを操作できることに注意してください。たとえば、 の を構成することはできず、ListintのみListを構成できIntegerます。上で説明したように、この制限は配列には適用されません。

于 2012-05-11T14:22:59.937 に答える