2012-05-13 14 views
2

可能性の重複:私のプログラムの中で
What is the garbage collector in Java?Javaのガベージコレクタはどのように動作しますか?

、私たちは20分として、それを設定します(一定時間後に別の関数を呼び出す設定機能を持っていますこの例ではScheduledThreadPoolExecutorを使用しています)。

呼び出される関数は、removeStat(Character char)です。このメソッドでは、サイド文字の関数への参照を行います(これはchar.getClient().getWriter()となります)。私たちは、20分間の待機時間中に、問題のキャラクターがログアウトし、そのキャラクターインスタンスがもはや必要ではないと仮定します。

removeStatのcharがコールされるまで、JavaガベージコレクタがCharacterクラスを削除しますか?

+0

恥ずかしがり屋であるかどうかわからないが、いずれにしても大丈夫だよ) – jmort253

+1

@ jmort253 - PuppyKevinは戻ってきて答えを受け入れたのはおそらく誠実だったということだろう。 :) –

+0

um、みんな。これは詐欺ではありません。少なくともリンクされた質問ではありません。これにはガベージコレクションと呼び出し可能ファイルとスケジュールされたスレッドのエクスパートに関する特定の質問があります...リンクされた質問はGCに関する一般的な質問です。 – vidstige

答えて

5

ガベージコレクタ(Javaを含む)は、これを心配する必要がないほどスマートです。ガベージコレクタは、すべての参照が消えるまで、何も収集しません。オブジェクトがまだアクセス可能な場合、オブジェクトはまだ存在します。

+0

だから、20分のタイマーの代わりに、私は非常識な時間を使う(私たちはそれを7日間にする) - ヌルになるオブジェクトについて心配する必要はないだろうか? – PuppyKevin

+0

それは正しいです。あなたがまだそれを得ることができるなら、それはまだそこにあります。オブジェクトにアクセスする頻度には注意しません。それはまだそれにアクセスすることが可能かどうかに注意を払う。何か他人のコードを壊す危険があります(あなたのようなもの)。 –

+0

しかし、使用されていないがまだ参照されている文字からメモリが足りなくなるのを心配する必要があるかもしれません。 –

関連する問題