Shallow copy:
If the Members in the array are of the value type (such as int, float, double, byte), the values are completely copied to the target array. If the Members are of the reference type (such as user-defined type: class Student, class People, or class type in the class library: ArrayList, etc.), refers to copying and referencing to the target array.
Sometimes the text is not as easy to understand as the code, but it may be easier to understand it with a diagram here. See:
Suppose you create a Student class array Student [], and then copy it to another Student class array Student1 [].
It is easy to see that the so-called shallow copy only copies the reference type for the reference type. Modifying the value in memory through an array will affect the reference of another array to the memory object.
The CopyTo and Clone functions in the Array class belong to the shortest copy.
Deep copy completely creates new objects. Creates new objects for all objects in the original array. Modifications to the new array do not affect the values or objects in the original array.
Author: diyoosjtu