In object oriented programming heaps are used for to store the actual objects. Stacks are used for storing reference-variables to the objects.
What's the concrete reasons for choosing those two specific data-structures?
What benefit has a heap in the described scenario? What benefit provides a stack?