Mark Nelson wrote "Visualising Garbage Collection in the JVM," which goes into a lot of detail on the standard Sun JVM and how its garbage collection works. He talks about Eden, survivor spaces, old and new generations, and wrote an app to show how it works when looked at with logs or visualvm.
The example is built with Maven, and shows how to supply command line arguments to a JVM in maven.
It's a nice article, because it shows how GC works, or begins to. This provides a good place to start when trying to tune a garbage collection problem.