Jvisualvm and Java Mission Control both measure certain aspects of running Java code, come with the JDK, and can be found in $JAVA_HOME/bin. This Oracle web page has some good overview information. They have similar functionality.
I have played around with both of them briefly, but I'm hoping to hear from somebody who has looked at them in more detail.
I'm most interested in hearing about any recommendations regarding measuring class usage/object creation in a test environment or production environment. Java Mission Control seems to require commercial licensing for use in production. Besides that, I'm not sure what distinguishes them.
Examples of things I'm hoping to learn about... Are there large differences in performance? Is gathering data easier in one than the other? Are there significant differences in what can be done remotely?