轻松掌握深拷贝和浅拷贝

轻松掌握深拷贝和浅拷贝

浅拷贝:

obj2是对obj1的浅拷贝,obj2新建了一个对象,但是obj2对象复制的是obj1的指针,也就是obj1的堆内存地址,而不是复制对象本身。obj1和obj2是共用了内存地址的。

深拷贝:

obj3是对obj1的深拷贝,obj3和obj1不共享内存
因此:

浅拷贝只复制指向某个对象的指针,而不复制对象本身,相当于是新建了一个对象,该对象复制了原对象的指针,新旧对象还是共用一个内存块,

深拷贝是新建一个一模一样的对象,该对象与原对象共享内存,修改新对象也不会影响原对象
注:深拷贝和浅拷贝都是对象拷贝