効率的なゴミ掃除

JavaPress41のGCの仕組みを読みました。
いわゆるOld/YoungとEden/Survivorの話です。
JavaGCってこんな風になっているんですね。
単に解放する/しないではなくて、データを移動させているんですね。
これならフラグメンテーションもなくなる。
それと、データを移動している。と言うことは、内部的には間接参照になっているんですね。
つまり、オブジェクトを参照するとき、そのアドレスが入っているのではなく、アドレス表のindexが入っているんですね。
もし、アドレスが直接入っているとすると、データを移動させたとき、すべてのアドレスを
書き換えなければならないです。それって大変。
間接参照だと、アドレスが変わっても、そのアドレス表を1箇所変えるだけで済みます。
ふむふむ。