浅拷贝(shallowCopy)
只是增加了一个指针指向已存在的内存地址
深拷贝(deepCopy)
是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存
1.浅拷贝只是增加了一个指针指向已经存在的内存。
2.深拷贝就是增加一个指针并且申请一个新的内存,使这个增加的指针指向这个新的内存。
3.采用深拷贝的情况下,释放内存的时候就不会出现在浅拷贝时重复释放同一内存的错误。
二,浅拷贝的实现方式
1,concat、slice用于对包含引用对象的一维数组的浅拷贝
2,Object.assign()
三,深拷贝的实现方式
1,JSON.parse(JSON.stringify())
2,手写递归方法
3,函数库lodash的cloneDeep方法
4,slice和concat这两个方法,仅适用于对不包含引用对象的一维数组的深拷贝
浅复制:被复制对象的所有变量都含有原来对象的相同值,而所有对其他对象的引用仍然指向原来的对象。换句话说就是,浅复制至复制他所考虑的对象(也就是基本数据类型),不复制他所引用的对象(其他对象)。
深复制:被复制对象的所有变量都含有与原来对象相同的值,那些引用其他对象的变量指向复制的新对象,而不再是原有的那些被引用的对象,换而言之,深复制吧复制的对象所引用的对象都复制了一遍。
深复制和浅复制都是由clone方法实现的。
Java中的所有类都继承Object类,而Object类提供了一个clone()方法。这个方法的作用是返回一个Object对象的复制。这个复制函数返回的是一个