title: How do Immutable Objects help decrease overhead due to Garbage Collection?
body: <p>I am a newb, and I have read about Garbage Collection from the first two answers <a href="https://stackoverflow.com/questions/3798424/what-is-the-garbage-collector-in-java">here</a>.</p>
  
  <p>Now justifying the use of Immutable Objects even if the programmer has to create new objects, as compared to using existing objects (in multi-threaded applications), <a href="https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html" rel="noreferrer">this tutorial</a> says that the cost of object creation is made up for by the <em>decrease in memory overhead due to garbage collection</em>, and the elimination of code to protect mutable objects from threads interference and memory consistency errors:</p>
  
  <blockquote>
    <p>The impact of object creation is often overestimated, and can be
    offset by some of the efficiencies associated with immutable objects.
    These include <strong>decreased overhead due to garbage collection</strong>, and
    the elimination of code needed to protect mutable objects from
    corruption.</p>
  </blockquote>
  
  <p><strong>The question is how? What does Garbage Collection have to do with Mutability or Immutability of objects?</strong></p>