Shallow Copy
A shallow copy of an object copies all of the member field (literal) values. Any pointer in the object will point to the same memory location as the original object.
Deep Copy
A deep copy copies all fields, and if the object has pointers to other resources, it copies the pointed-to data as well.