To profile JVM, you need to know Java Heap, JMX and Class loader. This slide introduces them for you.
Need an introduction for GC? Please see another slide. https://speakerdeck.com/eller86/garbage-collection-of-oracle-jdk6