when an object contains pointers, a deep copy will follow the pointers and make a copy of all objects pointed at. For example. A deep copy of a linked list, will copy every node in the list so that two identical but distinct lists exist.
In making a copy of a complex data structure, it is often possible to copy upper levels of data without copying lower levels. If all levels are copied nonetheless, it is a deep copy. See also shallow copy (see shallow copy).