プリミティブの宣言/初期化は、新しいオブジェクトの作成と同じですか?プリミティブを作成するときに私が知っていることから、それらのラッパークラスも作成します。私はJavaに実装しています。
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
変数は、最初に作成されるときに「宣言」されます (つまり、変数の型と名前を指定します)。宣言時に値を代入すると初期化されます。
いいえ、プリミティブ変数を宣言して初期化しても、オブジェクトは作成されません。2 つの整数値を持つクラスを考えてみましょう。1 つはラッパー タイプを使用し、もう 1 つは使用しません。
public class Foo
{
private int primitive = 10;
private Integer wrapper = new Integer(10);
}
変数の値はprimitive
数字の 10 です。変数の値は、wrapper
数字の 10 を含むオブジェクトへの参照Integer
です。したがって、 のインスタンスは、 の数字と の参照Foo
の状態を保持します。primitive
wrapper
Java にはすべてのプリミティブ型のラッパー クラスがありますが、それらを自動的に使用するわけではありません。
プリミティブを作成しても、それらのラッパー クラスは作成されません。
元の質問については、プリミティブを宣言/初期化するとスタック上に作成されますが、オブジェクトを宣言するとオブジェクトへの参照を保持する変数が割り当てられます。オブジェクトを初期化すると、ヒープに割り当てられます。
答え: いいえ。
これをチェックしてください: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html
いいえ。プリミティブは Java のオブジェクトではありません。