• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:newから始まる場合がわからなくて困ってます)

newから始まる場合がわからなくて困ってます

このQ&Aのポイント
  • newから始まっており、2つ使ってますが、そのインスタンス生成の仕組みはどうなってるのでしょうか?
  • インスタンス生成のその仕組みがわからなくて困ってます。
  • このプログラムでは、BadBankクラスのインスタンスを生成し、そのインスタンスを引数としてBadBankTestクラスのコンストラクタを呼び出しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

インスタンスの生成に関しては どっちも同じよ。 違うのはGCのタイミングだわ。 new BadBankTest(bank).start(); この場合、インスタンスは使い捨てになるわ。 つまり、処理さえ終わってしまえば もういらない子になる。 BadBankTest bt1 = new BadBankTest(bank); bt1.start(); それに比べて場合、startで実行される処理が終了しても コードはこのインスタンスを保持しているのよ。 bt1という変数にインスタンスの参照を格納してね。 そのため、startで実行される処理が終わってもGCの対象にならないわ。

pochi1234
質問者

お礼

なるほど、変数に代入しないことで、インスタンスが使い捨てなんですか。 たしかにbr1の方式を使うとインスタンスが生成されっぱなしで、ガーベッジコレクションが起きないですね。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A