0

重複の可能性:
オブジェクトがガベージコレクションされないようにする方法は?
Javaでは、オブジェクトが到達不能になるのはいつですか?

インタビューでこんな質問をされました。

オブジェクトがガベージ コレクタに到達できないようにするには、どうすればよいですか?

4

3 に答える 3

1

GC は、ヒープ内のすべてのオブジェクトを管理します。オブジェクトを常に到達可能にし、GC によって収集されないようにすることはできますが、GC の到達範囲を超えてオブジェクトを作成することはできません。

データを到達不能にする唯一の方法は、ネイティブ メモリのオフ ヒープにするか、ディスクに書き込むか、別のプロセスに渡すことです。

ところで、別のプロセスでプロキシされた分散 RMI オブジェクトでさえ、使用されなくなったときに GC によってクリーンアップできます。

于 2012-10-31T11:50:46.727 に答える
1

私が知る限り、ガベージコレクターが「到達できない」オブジェクトはありません。ただし、GC はアイテムを指す参照がなくなったアイテムのみを収集します。

したがって、それらを「保護」するには、それらを final (定数) として宣言するか、たとえばメイン操作ループに参照を含めるなどして、常に変数を指す参照があることを確認します。

于 2012-10-31T11:47:57.473 に答える
0

それ自体への静的参照を含めるようにします (たとえば、シングルトン パターン)。

于 2012-10-31T11:47:49.210 に答える