Stroustrup is not the first to tell me that java objects are always accessed via a pointer as the Garbage collector may relocate the actual object.
At runtime, this indirection has a non-zero cost. In contrast, C/C++ app (without GC) would access the pointee directly.
I guess a GC language would need some lookup table.