2

私はたくさん読んできましたが、今は本当に混乱しています。通常のインスタンス化を考えてみましょう:

Sampleclass  instance1  = new Sampleclass();

instance1たくさん読んだ後、ヒープに格納されているオブジェクトのデータのメモリアドレスを含むスタックに格納されている参照変数であることを知りました。

これが正しい場合、オブジェクトはどこにありますか? instance1もオブジェクトです。のような宣言しか見たことがないこともありnew Sampleclass()ます。オブジェクトのインスタンス化にはそれで十分ですか?

4

4 に答える 4

8

instance1変数です。

その型は参照型であるため、ヒープ上に存在するオブジェクト インスタンスへの参照です。

new SampleClass()ヒープ上に新しいオブジェクトを作成し、それへの参照を返すコンストラクター呼び出しです。

于 2013-08-20T17:55:20.487 に答える
0

1) Sampleclass (タイプ) > コンテナタイプ

2) instance1 (識別子) > メモリ (ヒープ) に格納されているデータの参照のわかりやすい名前 (01010101010) と参照 (01010101010) でスタックに格納されている「instance1」自体

3) = (演算子) > 左側の値を右側に割り当てる

4) 新規 (キーワード) > データを保存するための新しいスペースを購入する

5) サンプルクラス(); (Constructor ) > Type "Sampleclass" のコピーを作成し、新しく購入したスペース (これは実際にはオブジェクトまたはインスタンスです) に格納します。これは "instance1" という名前でアクセスされます。"instance1" は、ヒープ メモリに格納されたデータの実際の場所を知っているからです。 .

于 2017-12-16T05:42:56.920 に答える