title: What is the difference between Java Non Heap Memory and Stack Memory? Are they Same if not what is the difference between them?
body: <p>I am using Jconsole for monitoring a Java Application. The memory tab shows different Heap and Non Heap memories like</p>
  
  <ol>
  <li>Heap Memory Usage</li>
  <li>Non Heap Memory Usage</li>
  <li>Memory Pool "CMS Old Gen"</li>
  <li>Memory Pool "Par Eden Space"</li>
  <li>Memory Pool "Par Survivor Space"</li>
  <li>Memory Pool "Code Cache"</li>
  <li>Memory Pool "CMS Perm Gen"</li>
  </ol>
  
  <p>What is the difference between these terms. Also please provide some information regarding - how to find anomalies in the application behavior by monitoring these parameters.</p>