-1

Q1:AT 5行目は、mess1行目でインスタンス化されたオブジェクトへの参照を失います(オーバーライドされます)?

Q2:メソッドの3行目で、enqueue混乱の参照をの新しい「スロット」に格納しますArrayListArrayList1行目で作成されたオブジェクトへの参照が失われたとしても(5行目のため)、それはまだそれを指しているので、ガベージコレクションされませんか?

MessengerQ3:これらの7行の実行後、コントローラーのキューに2つのオブジェクトへの2つの参照があるはずですか?

1: Messenger mess = new Messenger(_TYPE1_);
2: /* ... */
3: controller.enqueue(mess); // store the reference inside a Runnable in the queue
4: /* ... */
5: mess = new Messenger(_TYPE2_);
6: /* ... */
7: controller.enqueue(mess);
4

2 に答える 2

1

Q1:はい、新しい参照で再割り当てされます。

Q2:そうですね。

Q3:そうですね。

于 2013-03-15T14:22:00.177 に答える
1

A1:はい、参照が失われます。Messageその参照の値(ポインターとして表示できます)は、新しいオブジェクトの参照で上書きされます。つまり、を「ポイント」messするのをやめ_TYPE1_、現在はを「ポイント」し_TYPE2_ます。

A2:定義上、オブジェクトを指す参照がない場合、オブジェクトはガベージコレクションの対象になります。あなたはここであなた自身の質問に答えました。

A3:はい、キューに入れられたオブジェクトが異なっていたためです(キューイング時に異なるオブジェクトが参照されました)。

于 2013-03-15T14:23:20.043 に答える