Threads each have their own stack, but they share a common heap.
Its clear to everyone that stack is for local/method variables & heap is for instance/class vari
Processes don't --generally-- share heap space. There are API's to permit this, but the default is that processes are separate
Threads share heap space.
That's the "practical idea" -- two ways to use memory -- shared and not shared.