我何时会使用浅拷贝?

时间:2014-04-13 14:41:45

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

我理解浅版和深版之间的区别是什么,但我真的不明白在什么情况下首选浅版本。

如果我没有弄错,浅拷贝会创建值类型的新副本,只需复制引用类型的地址,使它们指向同一个对象,对吗?为什么我会想要这种效果?

1 个答案:

答案 0 :(得分:1)

事实上,浅色复制是最省力的方式,做得少。它特别适用于不可变对象,其中共享是最佳的。

不可变对象没有内部状态,无法更改,只能将变量设置为其他值。

在java String中,BigDecimal是不可变的。

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

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