I have already mentioned about cloning in my previous post and also the types of cloning in java i.e. 1. Shallow cloning and 2. Deep cloning We have already seen what is shallow cloning, how to use it and the example to demonstrate it in my previous post you can read about it here . In this post we will discuss about deep cloning in java. Deep cloning basically refers to creating an exact copy of an object that means if we have a object class Person() { String name; Address address; //rest of the code } class Address () { String state; String city; //rest of the code } Now if I create a deep clone of the object "Person" then it will also create a new object of the "Address" and not a reference. Just to verify you can try making changes to the new "Address" object and then see if you still having the same value in the main object. That will be different if not then something is wrong. For creating a Deep clone you can use ei...