ガベージコレクションには、大きく分けて「参照カウント」と「マーク・アンド・スイープ」という2つの手法があります。
参照カウント:あるオブジェクトを指している参照の数をカウントして、ゼロになった時点で解放する方法。使い終わったものは確実に解放されるが、循環参照があると永遠に解放されない。
マーク・アンド・スイープ:使用中の変数からひたすら参照をたどって、たどり着けないものを解放する。循環したものもまとめて解放できるが、GC自体の処理が重い。
Javaはマーク・アンド・スイープ方式を取っていますが、世代別GCなど軽くするための工夫もあります。
PHPでは参照カウント方式をメインとしていますが、PHP 5.3以降ではマーク・アンド・スイープも取り入れています。ただ、PHPでは配列がオブジェクトではないので、意図的に配列の参照を取るようなことをしない限り、そこまでGCで問題となることはないでしょう。
JavaScriptの場合、DOMオブジェクトはブラウザ側が握っていること、そしてクロージャが見える範囲すべての変数を取り込むこともあって、JavaScriptとDOMをまたいで、解消しづらい循環参照が出来上がってしまうことが多々あります。jQueryなどでは循環しないように工夫してイベントやDOMに紐づくデータを管理しています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。