A developer taught me about an interesting tool I never know about.
jconsole is a gui app that comes with the JVM that can monitor memory usage of your java applications, threads, classes, and mbeans.
By invoking your JVM with the following flags you can get all kinds of interesting information from %JAVA_HOME%/bin/jconsole.exe
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false