广度与深度; 根据您的对象作为根节点的引用树来思考。
浅:
变量 A 和 B 指的是不同的存储区域,当 B 被分配给 A 时,两个变量指的是相同的存储区域。以后对其中一个内容的修改会立即反映在其他内容中,因为它们共享内容。
深:
变量 A 和 B 指的是不同的存储区,当 B 被分配给存储区中的值时,A 指向的值被复制到 B 指向的存储区中。后来对其中任何内容的修改仍然是 A 或 B 的唯一内容; 内容不共享。
浅拷贝尽可能少复制。集合的浅表副本是集合结构的副本,而不是元素。使用浅拷贝,两个集合现在共享各个元素。
深拷贝复制一切。集合的深层副本是两个集合,原始集合中的所有元素都是重复的。
简而言之,这取决于什么指向什么。在浅拷贝中,对象 B 指向对象 A 在内存中的位置。在深层复制中,对象 A 的内存位置中的所有内容都会被复制到对象 B 的内存位置。
这篇 wiki 文章有一个很棒的图表。