重複の可能性:
整数配列はJVMの内部でどのように格納されますか?
C#では、参照型である新しい配列を作成しているときに、スタックにポインターを置き、ヒープ内にオブジェクト自体を配置します。int
、などの単純なプリミティブ型を使用してこの配列を作成する場合double
、値は、コンテンツが格納されている別のヒープアドレスを指すポインターではなく、ヒープ内の配置された場所に正確に配置されます。
では、Javaでこれがどのように発生するかを誰かに説明してもらえますか?JavaはInteger
常に配列で(参照型)を使用しますか、それとも値型をC#のように扱いますか?
int[] hello = new int[5];
hello[0] = 2; // C# put this value directly in same slot and doesn't
//create a wrapping object.
私は、C#にはないJavaでのラッピングタイプと呼ばれるものを知っています。C#には自動ボクシング機能がInt32
ありますが、参照型ではなくValueType
、asではなくInteger
オブジェクトint
です。を使用して値をボックス化するObject o = 5;
か、structに親クラスがある場合は、それを使用してヒープにラップすることもできます(ボックス化)。