title: How does Cloneable work in Java and how do I use it?
body: <p>I would like to know the following:</p>
  <ol>
  <li><code>Cloneable</code> means we can have a clone or a copy of objects, by
  implementing the <code>Cloneable</code> interface. What are the advantages and
  disadvantages of doing that?</li>
  <li>How does the recursive cloning happen if the object is a
  composite object?</li>
  </ol>