Since you tagged your question Java, I'll assume you meant in Java. Straight from the horse's mouth:
The Java virtual machine has a heap that is shared among all Java virtual machine threads. The heap is the runtime data area from which memory for all class instances and arrays is allocated.
Here is a link to a previous SO question that goes into this in serious detail (and is a language-agnostic discussion on the topic).
Here's a link to an article from C# corner detailing the issue in C#.