taking a very simplistic view, the heap is the memory that your code consumes during a transaction. The Apex heap limit ensures that in a multi-tenant environment, one tenant does't take up too much of the total heap and leave everyone else at a disadvantage.
In order to understand heap, I'd suggest this article:
http://www.maxi-pedia.com/what+is+heap+and+stack
taking a very simplistic view, the heap is the memory that your code consumes during a transaction. The Apex heap limit ensures that in a multi-tenant environment, one tenant does't take up too much of the total heap and leave everyone else at a disadvantage.