reference - 我什么时候使用浅拷贝?

标签 reference deep-copy value-type shallow-copy

我明白浅拷贝和深拷贝之间的区别,但我真的不明白在什么情况下更喜欢浅拷贝。

如果我没记错的话,浅拷贝会创建值类型的新副本并简单地复制引用类型的地址,这样它们就指向同一个对象,对吗?为什么我会想要这种效果?

最佳答案

实际上,浅拷贝是最省力、做得更少的方法。它特别适用于共享最佳的不可变对象。

不可变对象(immutable对象)没有内部状态,无法更改,只能将变量设置为另一个值。

在 java 中 StringBigDecimal 是不可变的。

不可变对象(immutable对象)也可以更好地利用线程。

对于可变类,您可能对写时复制数据结构感兴趣,在写入一个变量之前发生共享。

关于reference - 我什么时候使用浅拷贝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23044102/

相关文章:

c++ - C++中结构对象的深拷贝指针

c# - 是否可以创建接受(可空)值类型和引用类型的 C# 泛型方法?

c++ - 返回对结构的引用

Java 属性和引用——我没有得到我所期望的

python - 我在哪里可以找到关于 python 异常的好的引用文档

c# - .net - 锁定盒装值而不是新对象

swift - Swift 的异构值类型数组是如何工作的?

Java 引用资料

ruby - 如何在 Ruby 中复制散列?

c - C语言中的浅拷贝和深拷贝