1.When JVM starts, heap is created
2.Heap is the runtime data area of the JVM
3.It is shared by all the threads inside the JVM
4.It allocates memory for all class instances and arrays
5.Heap storage for objects is reclaimed by garbage collector when it is not used.
6.JVM throws OutOfMemoryError, If a computation needs more heap than what can be supplied by the automatic storage management system.