On Oct 3, 2007, at 5:23 AM, Rick DeNatale wrote:

> One way to implement an object memory/heap is to use a level of
> indirection, an object is represented by what's effectively an element
> in an array of pointers, with the pointer holding the address of an
> object's state.  Variables refer not to the object directly but to the
> pointer, which is called a handle.  This allows the objects to be
> moved (during GC for example) without requiring all references to the
> object to be relocated.
>
> Two uses of object handles were in the earliest implementations of
> Smalltalk, and in the old Macintosh OS.

I think the JVM does (or did) something similar using an intermediate  
object table.

-- fxn