• ベストアンサー

Javaのガーベジコレクションについて

class Sample{ Sample sm; } class SampleMain{ public static void main(String[] args){ Sample sm1 = new Sample(); Sample sm2 = new Sample(); sm1.sm = sm2; sm2.sm = sm1; sm1 = null; sm2 = null; } } このプログラムでガーベジコレクションの対象(実行される可能性がある)は何行目になりますか?

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

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

> ガーベジコレクションの対象(実行される可能性がある)は何行目になりますか? 前の質問もそうでしたが、質問の意味・意図が分かりにくいです。 どのオブジェクトがGCで回収されるのかを聞いているのならば何行目とは聞かないだろうし、 GCが発生するタイミングを聞いているのならば対象という単語が何を意図しているのかが分からない。 GCで回収される可能性があるオブジェクトは2回のnew Sample();で生成されている2つ、そのタイミングはsm2=null;の実行された以降。 ただしこのプログラムではsm2=null;の後にすぐに実行が終了してしまうでしょうから、おそらくGCは発生しません(実行終了前に律儀にGCを行うJava処理系があってもいいですが、あまり意味はありません)。

wiredrikou
質問者

お礼

詳しく説明して頂きありがとうございました!

その他の回答 (1)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

sm2 = null; の行。 その理由は,あなた自身による質問 http://okwave.jp/qa/q7300548.html に対するsalsberryさんからの回答ANo.1。

wiredrikou
質問者

お礼

回答ありがとうございました。

関連するQ&A