对象的深拷贝和浅拷贝的区别是什么

2024-06-18 16:01:33 手机知识百科

浅拷贝和深拷贝的区别-大白话讲解 

浅拷贝和深拷贝的区别主要在于是否真正获取一个对象的复制实体,而不是引用。浅拷贝只是增加了一个指针指向已存在的内存地址,而深拷贝是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存。

浅拷贝:

1. 仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来的对象也会相应的改变。

2. 更改拷贝对象中的引用类型变量的属性,原对象中的引用类型变量的属性会随着被修改(因为堆内存中的变量不进行复制)。

深拷贝:

1. 在计算机中开辟一块新的内存地址用于存放复制的对象。

2. 更改拷贝对象中的引用类型变量的属性,原对象中的引用类型变量的属性不会随着被修改(因为堆内存中的变量会进行复制)。

总的来说,浅拷贝适用于对象或数组的引用,而深拷贝适用于对象或数组的值。

版权说明: 本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。