Object variables hold the type and location of the object, like Integer@3d540f or Dog@c763ba. During function calls, assignments, etc., that address is copied, not the object data itself. If you want to copy the object data, you have to ask explicitly with a call to .copy().
Java programmers should be aware of the difference between object and address, but there is no special syntax for “address-of” or “de-reference.” There are no object values, only primitive values and address values.