2017-04-13 10 views
2

を削除:JavaのGCメモリ私は現在、Javaのソケットサーバを書いていると私は次のような状況で何が起こるか疑問に思った

mainClassロビークラスを作成し、mainClassの配列に追加します

ロビークラスは、ルームクラスを作成し、ロビークラスの配列に追加します。

ルームクラスは、クラスのクラスを参照してください。

mainClassが配列

部屋やロビーに部屋ホールド参照にロビーホールドリファレンスからロビーインスタンスを削除し、彼らはこれまで、GCによってクリーンアップされるのですか?

+0

* GCは*ルート参照可能オブジェクト保持者と呼ばれる*オブジェクトがGCルートからの強い参照を持たない場合は、ciruclar参照に関係なくクリーンアップすることができます。 –

+0

現代のガベージコレクションは、単純な参照カウントよりはるかに複雑です。基本的に、ヒープは到達可能な「生きた」オブジェクトを検索されます。それ以外のものはごみです。ヒント:そのようなことは何百回も記録されています;-) – GhostCat

答えて

0

オブジェクトにGCルートからの参照がない場合は、そのオブジェクトが削除されます。

関連する問題