4

プリミティブの宣言/初期化は、新しいオブジェクトの作成と同じですか?プリミティブを作成するときに私が知っていることから、それらのラッパークラスも作成します。私はJavaに実装しています。

4

5 に答える 5

5

いいえ、プリミティブ値を割り当ててもオブジェクトは作成されません。

あなた参照している可能性があるのは、プリミティブ値が参照型(別名「オブジェクト」)が必要なコンテキストで使用される場合、対応するラッパーに自動ボックス化できるという事実です。

int i = 13;     // this line does not create an object
Integer i2 = i; // at this line 13 is auto-boxed into an Integer object

char c = 'x';   // again: no object created:
List<Character> l = new ArrayList<Character>();
l.add(c);       // c is auto-boxed into a Character object

また、declare と initialize の違いについても説明します。

int i;          // an int-variable is declared
int j = 0;      // an int-variable is declared and initialized
i = 1;          // an int-variable is assigned a value, this is *not* initialization

変数は、最初に作成されるときに「宣言」されます (つまり、変数の型と名前を指定します)。宣言時に値を代入すると初期化されます。

于 2010-05-20T15:22:00.917 に答える
3

いいえ、プリミティブ変数を宣言して初期化しても、オブジェクトは作成されません。2 つの整数値を持つクラスを考えてみましょう。1 つはラッパー タイプを使用し、もう 1 つは使用しません。

public class Foo
{
    private int primitive = 10;
    private Integer wrapper = new Integer(10);
}

変数のprimitive数字の 10 です。変数の値は、wrapper数字の 10 を含むオブジェクトへの参照Integerです。したがって、 のインスタンスは、 の数字と の参照Fooの状態を保持します。primitivewrapper

Java にはすべてのプリミティブ型のラッパー クラスがありますが、それらを自動的に使用するわけではありません。

于 2010-05-20T15:20:39.907 に答える
2

プリミティブを作成しても、それらのラッパー クラスは作成されません。

元の質問については、プリミティブを宣言/初期化するとスタック上に作成されますが、オブジェクトを宣言するとオブジェクトへの参照を保持する変数が割り当てられます。オブジェクトを初期化すると、ヒープに割り当てられます。

于 2010-05-20T15:21:00.017 に答える
1

答え: いいえ。

これをチェックしてください: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html

于 2010-05-20T15:21:01.967 に答える
0

いいえ。プリミティブは Java のオブジェクトではありません。

于 2010-05-20T15:20:33.260 に答える