References on the Stack point to objects in the Heap.
References to objects reside on the Stack, while the actual objects are in the Heap. This allows for efficient tracking and cleanup. When a method is executed, a reference to an object might be created on the Stack, but the object itself is allocated in the Heap. When the method completes, the reference is removed, but the object persists if other references exist.
Additional Notes
Why are references stored on the Stack, not the Heap?