【20230303每日面经】深拷贝和浅拷贝的区别

每日面经

  • 考察点:编程语言

  • 难度:简单

  • 题目: 如果你在面试过程中,被面试官问到:请谈谈深拷贝和浅拷贝的区别,你会如何回答呢?

ps:每周一公布上周所有题目答案

1、浅拷贝:对原对象的值进行拷贝,本质上还是对原对象的地址进行引用。浅拷贝的值或是原对象的值发生变化,新生成的对象的值也会随着变化
2、深拷贝:对原对象的地址进行拷贝,新拷贝了一份与原来的地址不同的对象,修改原对象里的值不会对新的对象造成影响

深拷贝和浅拷贝是日常工作中经常用到的两种数据拷贝方式,深拷贝和浅拷贝的主要区别在于拷贝后的对象是否共享内存。

浅拷贝

是创建一个新对象,新对象中的数据与原对象中的数据具有相同的地址,也就是说新对象中的一部分数据是共享原对象中的数据的地址。如果原对象中的某些数据被改变,那么新对象中共享该数据的部分也会发生改变。

深拷贝

是创建一个新对象,新对象中的数据与原对象中的数据地址不同,也就是说新对象中的所有数据都是独立的。如果原对象中的某些数据被改变,那么新对象中不会受到影响。