一、浅复制
被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都任然指向原来的对象。
二、深复制
深复制把引用对象的变量指向复制过的新对象,而不是原有的被引用对象
三、举例
产品类中有个产品明细对象,当我这里对产品类进行浅拷贝的时候,对应的产品明细对象任然指向原来的对象,地址值啥的未改变
这样就会照成,当我修改浅拷贝的产品明细对象时,他不会改变,他这里的值任然是指像原来的对象
而如果是深拷贝,当在修改后,他是随着变化而变化的,因为他这里是新的对象
四、注意
- 浅复制不能复制对象
- 深复制要注意对象的层次,就比如:我产品下有产品明细,产品明细下有供应商明细,供应商明细有账号明细.....等等的套娃下去,就要小心处理了,当心出现循环引用的问题了(比较复杂了,要细心研究)
- 但如果只是一层的话问题就不会很大