Javaのガベージコレクションに関する質問

船長うんち:

二重にリンクされたリストがあるとします。私はそれをそのように作成します:

MyList list = new MyList();

次に、いくつかのノードを追加して使用し、その後、次のように古いリストを破棄することにします。

list = new MyList();

新しいリストを作成したばかりなので、古いメモリ領域内のノードはまだ相互にポイントしています。それは、古いノードのあるリージョンがガベージコレクションされないことを意味しますか?各ノードがnullを指すようにして、GCされるようにする必要がありますか?

ジョン・スキート:

いいえ、必要ありません。Java GCは循環参照を適切に処理します。

概念的には、GCが実行されるたびに、システム内のすべての「ライブ」ルート参照が調べられます。

  • すべてのスタックフレームのローカル変数
  • すべてのインスタンスメソッドスタックフレームでの「this」参照
  • 事実上、すべての静的変数(実際、これらは実際にはClassオブジェクトによって参照され、次にClassLoaders によって参照されますが、今のところは無視します)

それらの「既知のライブ」オブジェクトを使用して、オブジェクト内のフィールドを調べ、リストに追加します。システム内のすべてのライブオブジェクトが見つかるまで、これらの参照オブジェクトに再帰します。その後、ガーベッジは、ライブと見なされていないすべてのものを収集します

循環的に参照されるノードは相互に参照しますが、ライブオブジェクトはそれらを参照しないため、ガベージコレクションの対象になります。

これは、ガベージコレクタが概念的にどのように機能するかを大幅に簡略化した要約であることに注意してください実際には、世代、コンパクション、並行性の問題など、非常に複雑です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

OCA試験のガベージコレクションに関する質問

分類Dev

ガベージコレクションとピカソに関する問題

分類Dev

Javaでスレッドを「再帰的に」作成することに関する質問-新しいスレッドを生成した後、スレッドはガベージコレクションされますか?

分類Dev

ZGCとG1に関するJavaのガベージコレクション

分類Dev

Javaコレクションのパフォーマンスに関する質問

分類Dev

リスト追加自体に関するPythonガベージコレクション

分類Dev

Javaでのガベージコレクションを理解する

分類Dev

インタビューの質問:ガベージコレクションの対象となるオブジェクト

分類Dev

Scalaのコレクションに関する簡単な質問

分類Dev

C#USBReadPipeのガベージコレクションを無効にする

分類Dev

ガベージコレクターとfinalize()メソッドに関する質問

分類Dev

双方向関係のガベージコレクション

分類Dev

GC(ガベージコレクター)によるガベージコレクションのオブジェクトをマークする方法

分類Dev

Javaで完全なガベージコレクションをトリガーするものは何ですか?

分類Dev

Javaリフレクションに関するインタビューの質問

分類Dev

データベースの質問からのページネーションに関する問題

分類Dev

この関数はガベージコレクションできますか?

分類Dev

Javaクラスのガベージコレクションイベントを出力する方法

分類Dev

ハッカーランクに関するボールのコンテナの整理に関する質問のソリューションロジック

分類Dev

Javaのガベージコレクションの対象となる変数

分類Dev

Javaのガベージコレクション

分類Dev

SML、Java、C、Pascalでのガベージコレクション

分類Dev

Java:ガベージコレクションの適格性

分類Dev

ガベージコレクションに対するページングの影響は何ですか?

分類Dev

過剰なJavaガベージコレクションを調査する方法

分類Dev

Javaでのメモリリーク/ガベージコレクションの問題の追跡

分類Dev

PHPでSQLITEのガベージコレクション関数を実装する方法

分類Dev

Javaのすべてがガベージコレクションの対象になりますか?

分類Dev

アレイがガベージコレクションの対象になるのはいつですか?

Related 関連記事

  1. 1

    OCA試験のガベージコレクションに関する質問

  2. 2

    ガベージコレクションとピカソに関する問題

  3. 3

    Javaでスレッドを「再帰的に」作成することに関する質問-新しいスレッドを生成した後、スレッドはガベージコレクションされますか?

  4. 4

    ZGCとG1に関するJavaのガベージコレクション

  5. 5

    Javaコレクションのパフォーマンスに関する質問

  6. 6

    リスト追加自体に関するPythonガベージコレクション

  7. 7

    Javaでのガベージコレクションを理解する

  8. 8

    インタビューの質問:ガベージコレクションの対象となるオブジェクト

  9. 9

    Scalaのコレクションに関する簡単な質問

  10. 10

    C#USBReadPipeのガベージコレクションを無効にする

  11. 11

    ガベージコレクターとfinalize()メソッドに関する質問

  12. 12

    双方向関係のガベージコレクション

  13. 13

    GC(ガベージコレクター)によるガベージコレクションのオブジェクトをマークする方法

  14. 14

    Javaで完全なガベージコレクションをトリガーするものは何ですか?

  15. 15

    Javaリフレクションに関するインタビューの質問

  16. 16

    データベースの質問からのページネーションに関する問題

  17. 17

    この関数はガベージコレクションできますか?

  18. 18

    Javaクラスのガベージコレクションイベントを出力する方法

  19. 19

    ハッカーランクに関するボールのコンテナの整理に関する質問のソリューションロジック

  20. 20

    Javaのガベージコレクションの対象となる変数

  21. 21

    Javaのガベージコレクション

  22. 22

    SML、Java、C、Pascalでのガベージコレクション

  23. 23

    Java:ガベージコレクションの適格性

  24. 24

    ガベージコレクションに対するページングの影響は何ですか?

  25. 25

    過剰なJavaガベージコレクションを調査する方法

  26. 26

    Javaでのメモリリーク/ガベージコレクションの問題の追跡

  27. 27

    PHPでSQLITEのガベージコレクション関数を実装する方法

  28. 28

    Javaのすべてがガベージコレクションの対象になりますか?

  29. 29

    アレイがガベージコレクションの対象になるのはいつですか?

ホットタグ

アーカイブ