Basic data types: save values in the stack and access by value. The operation is their actual value, and the different variables do not interfere with each other.
Reference data type: save the address in the stack and access by reference. When querying, find the value in the heap memory according to the address; when modifying, multiple variables under shallow copy save the same address, any modification of a variable will change the value under the corresponding address, you can use deep copy to solve this problem.