Heap memory is organized into different generations.

1. Young Generation : Mostly all new objects are created in Young Generation initially. This generation is divided into two areas, namely Eden space and
Survivor space. Survivor space is further divided into two areas Survivor0 and Survivor1. All new Objects are initially created in Eden Space and survivor spaces are mainly used while having minor garbage collection.
Before every minor collection one Survivor space will be empty (to
) and this will used to keep the live objects from eden
space or from
survivor space for minor collections.

For next minor collection it will be vice versa, i.e former from
will be to
and to
will be form
.

2. Tenured or Old Generation : Objects that lives
in the Young Generation for some time (i.e survived a few minor collections) are moved to Old generation.
3. Permanent Generation : This area mainly contains class and methods metadata. Read more here.
Heap
PSYoungGen total 13888K, used 9807K [0x8a330000, 0x8b140000, 0x914f0000)
eden space 13504K, 69% used [0x8a330000,0x8ac67710,0x8b060000)
from space 384K, 96% used [0x8b0e0000,0x8b13c6e0,0x8b140000)
to space 448K, 0% used [0x8b060000,0x8b060000,0x8b0d0000)
PSOldGen total 115456K, used 57684K [0x514f0000, 0x585b0000, 0x8a330000)
object space 115456K, 49% used [0x514f0000,0x54d451c0,0x585b0000)
PSPermGen total 16384K, used 11253K [0x4d4f0000, 0x4e4f0000, 0x514f0000)
object space 16384K, 68% used [0x4d4f0000,0x4dfed618,0x4e4f0000)
The above is showing the memory usage summary of the different generations in Heap.
Please read this Sun white paper for a clear understanding.