Its been a while since I have completed one of the Oracle MOOC (Massive Open Online Courses). This one on troubleshooting the JVM and OutOfMemoryErrors was particularly good.
This Oracle MOOC was run by Poonam Parhar, currently a JVM Sustaining Engineer at Oracle where her primary responsibility is to resolve customer escalated problems against JRockit and HotSpot JVMs
Here is the summary from the course:
If you are interested in learning why our Java applications might exhibit performance problems, abnormal memory usage growth or sometimes even fail with OutOfMemoryError exceptions, and you want to learn how these problems can be diagnosed and eradicated, then this course is for you!