私はnewbです。私は最初の2つの回答hereからガベージコレクションについて読んでいます。不変オブジェクトはガベージコレクションのためにオーバーヘッドをどのように減らすのですか?
プログラマが新しいオブジェクトを作成しなければならない場合でも、マルチスレッドアプリケーションで既存のオブジェクトを使用するのと比較して、this tutorialはオブジェクト作成のコストがガベージコレクション、およびスレッド干渉及びメモリ一貫性エラーから可変オブジェクトを保護するためのコードの除去にメモリオーバーヘッドの減少:
オブジェクト作成の影響をしばしば過大評価され、そしていくつかによって を相殺することができます不変オブジェクトに関連する効率。 これらは、ガベージコレクションによってオーバーヘッドが減少したと、 の破損から変更可能なオブジェクトを保護するために必要なコードが削除された を含みます。
質問はどうですか?ガベージコレクションはオブジェクトの変更または不変性と何が関係していますか?
現代GCは、 "若く死んでいる"オブジェクトでは非常に効率的です。寿命が短いオブジェクトを作成して使用することを恐れないでください。より長い時間(例えば、キャッシングのために)オブジェクトを参照し続けることに注意してください。この問題は、実際には不変性に関するものではなく、寿命に関するものです。 – ZhongYu
リンクしたチュートリアルでは、正確なフレーズは_ "ガベージコレクションのためにオーバーヘッドが減少しました" _です。そこには「記憶」という言葉はありません。それにもかかわらず、不変のオブジェクトは実際にはより多くのメモリを消費する可能性があるため(既存のもので変更したい場合は新しいものを作成する必要があるため)、問題の修正を行う必要があります。詳細は以下の私の答えです。 –