| Features |
Stack |
Heap |
| Memory |
Stack memory is used only by one thread of execution. |
Heap memory is used by all the parts of the application. |
| Access |
Stack memory can’t be accessed by other threads. |
Objects stored in the heap are globally accessible. |
| Memory Management |
Follows LIFO manner to free memory. |
Memory management is based on the generation associated with each object. |
| Lifetime |
Exists until the end of execution of the thread. |
Heap memory lives from the start till the end of application execution. |
| Usage |
Stack memory only contains local primitive and reference variables to objects in heap space. |
Whenever an object is created, it’s always stored in the Heap space. |