Simply
- Heap space: All live objects are allocated here.
- Stack space: Stores references to the object for variable in method call or variable instantiation.
- Perm space: Stores loaded classes information
For example:
Student std = new Student();
after executing the line above memory status will be like this.
- Heap: stores “new Student()”
- Stack: stores information about “std”
- Perm Space: stores information about Student class