title: What do those strange class names in a java heap dump mean?
body: <p>I'm trying to track down a memory leak in a java process, using <a href="http://java.sun.com/javase/6/docs/technotes/tools/share/jmap.html" rel="noreferrer">jmap</a> and <a href="http://java.sun.com/javase/6/docs/technotes/tools/share/jhat.html" rel="noreferrer">jhat</a>. Every time I do this I see those weird notation for specific object types, like <code>[S</code> for string arrays and <code>[C</code> for Character arrays. I never remember what means what, and it's very hard to google this stuff.</p>
  
  <p>(<strong>EDIT</strong>: to prove my point, it turns out that <code>[S</code> is array of short and <code>[C</code> is array of char.)</p>
  
  <p>Anyone care to make a table listing all the different class names and what they mean? Or point me to such table?</p>
  
  <p>Specifically I'd like to know what <code>[Ljava.lang.Object;</code> means.</p>