こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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;
}
}

このプログラムでガーベジコレクションの対象(実行される可能性がある)は何行目になりますか?

投稿日時 - 2012-02-15 10:01:25

QNo.7306210

すぐに回答ほしいです

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

> ガーベジコレクションの対象(実行される可能性がある)は何行目になりますか?

前の質問もそうでしたが、質問の意味・意図が分かりにくいです。
どのオブジェクトがGCで回収されるのかを聞いているのならば何行目とは聞かないだろうし、
GCが発生するタイミングを聞いているのならば対象という単語が何を意図しているのかが分からない。

GCで回収される可能性があるオブジェクトは2回のnew Sample();で生成されている2つ、そのタイミングはsm2=null;の実行された以降。
ただしこのプログラムではsm2=null;の後にすぐに実行が終了してしまうでしょうから、おそらくGCは発生しません(実行終了前に律儀にGCを行うJava処理系があってもいいですが、あまり意味はありません)。

投稿日時 - 2012-02-16 22:37:54

お礼

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

投稿日時 - 2012-02-25 20:49:10

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

投稿日時 - 2012-02-15 10:43:56

お礼

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

投稿日時 - 2012-02-25 20:49:53