浅拷贝和深拷贝的区别-大白话讲解
浅拷贝和深拷贝的区别主要在于是否真正获取一个对象的复制实体,而不是引用。浅拷贝只是增加了一个指针指向已存在的内存地址,而深拷贝是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存。
浅拷贝:
1. 仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来的对象也会相应的改变。
2. 更改拷贝对象中的引用类型变量的属性,原对象中的引用类型变量的属性会随着被修改(因为堆内存中的变量不进行复制)。
深拷贝:
1. 在计算机中开辟一块新的内存地址用于存放复制的对象。
2. 更改拷贝对象中的引用类型变量的属性,原对象中的引用类型变量的属性不会随着被修改(因为堆内存中的变量会进行复制)。
总的来说,浅拷贝适用于对象或数组的引用,而深拷贝适用于对象或数组的值。