This video presents garbage collection in Java along with some tooling for understanding and visualizing how it works. It discusses memory pools and java heap layout.
The conclusion is that
* You need to understand some basic GC theory
* You want most objects to die young in young gen
* You should turn on GC logging!
Watch this video on http://www.infoq.com/presentations/Visualizing-Java-GC