(1) Deep copy: open up a new area in the heap memory to store the new object, and carry out a recursive copy of the child image in the object. The two objects after the copy do not affect each other. (2) Shallow copy: memory is created in the heap again. The basic data types of the object before and after the copy do not affect each other, but the reference types of the object before and after the copy share the same memory and will affect each other. (3) Assignment: The assignment is actually the address of the object in the stack, rather than the data in the heap, that is, the two objects point to the same storage space, no matter which changes will change the content of the storage space.