Heap vs Stack vs Perm Space

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