memento: a saved snapshot of the state of an object for possible later use
Shallow copy: copy just primitive data types
Deep copy: copy the object with all inner objects
how do we can perform deep copy?
by saving the object into a file and then read into another object.
4. make the class and all inner classes implements Serializable interface.
if you have some attribute you don't want to copy use "transient" keyword