What is Cloning and Why Do We Go For It With Java?

Understanding Java object cloning: When and why you need it, plus the pitfalls to avoid