If a shallow copy is performed then it is copied but its contained objects are not, Java supports shallow cloning of objects by default.
If a deep copy is performed then not only the object has been copied but the objects contained within it have been copied as well. Serialization can be used to achieve deep cloning.