Hi. Nebwie here. THe first question is if objects are moved (changed the address in memory) at runtime?  I am 99% sure the answer is true. If so:

1) Who moves them ? the GC?
2) when ?  agains which events, what triggers these movements?
3) why they are moved?  to compact the memory ?  why the memory needs to be compact? for arrays?
4) Is there a way to say "please, don't move this object X" ?  what would be the problem of having a lot of these "non-moveable" objects? memory fragmentation ?

If you can point me to the code also I would be happy.

Thank you very much in advance,

Mariano