title: Meaning of heap memory addresses in GC logs using -XX:+PrintHeapAtGC?
body: <p>The Java <a href="http://mechanical-sympathy.blogspot.co.uk/2013/07/java-garbage-collection-distilled.html" rel="noreferrer">heap is divided into regions known as generations</a>, e.g. <em>new generation</em>, which may be further divided, e.g. <em>eden space</em>. Using the <code>-XX:+PrintHeapAtGC</code> JVM option, <strong>three memory addresses for each heap region are printed in the GC logs</strong> in the form <code>[A, B, C)</code>, where <code>A</code>, <code>B</code> and <code>C</code> are memory addresses, e.g.:</p>
  
  <pre><code>eden space 838912K, 100% used [0x000000073ae00000, 0x000000076e140000, 0x000000076e140000)
  </code></pre>
  
  <p><strong>What is the meaning of these memory addresses?</strong></p>
  
  <p>I have searched the web but am unable to find any explanation of this part of the GC logs.</p>