When a reference to a remote object is passed from one virtual machine to the other, the sender and the recipient of the remote object both hold a reference to the same entity. That reference is not a memory location (which is only meaningful in a single virtual machine); it consists of a network address and a unique identifier for the remote object. This information is encapsulated in a stub object.
Conceptually, passing a remote reference is quite similar to passing local object references within a virtual machine. However, always keep in mind that a method call on a remote reference is significantly slower and potentially less reliable than a method call on a local reference.