title: In Java, what is a shallow copy?
body: <p>java.util.Calendar.clone() returns "...a new Calendar with the same properties" and returns "a shallow copy of this Calendar".</p>
  
  <p>This does not appear to be a shallow copy as answered <a href="https://stackoverflow.com/questions/184710/what-is-the-difference-between-a-deep-copy-and-a-shallow-copy">here</a> on SO.  That question is tagged <strong>language-agnostic,</strong> Java does not seem to follow the language agnostic definition.  As I step through the code I notice that the structure and the elements are copied to this new object, more than the language agnostic structure only.</p>
  
  <p>In Java, what is a shallow copy?</p>
  
  <p>How does it differ from a Java deep copy (if that exists)?</p>