Each Java Virtual Machine thread has a private Java Virtual Machine stack, created at the same time as the thread.

Whereas Heap is shared across.

The Java Virtual Machine has a heap that is shared among all Java Virtual Machine threads.

References: