Here is the answer.
The heap is the runtime data area from which memory for all class instances and arrays is allocated. The heap may be of a fixed size or may be expanded. The heap is created on virtual machine start-up. If you have complicated lgorithms or big caching which might create lot of objects in memory you may need bigger heap size.