我理解浅版和深版之间的区别是什么,但我真的不明白在什么情况下首选浅版本。
如果我没有弄错,浅拷贝会创建值类型的新副本,只需复制引用类型的地址,使它们指向同一个对象,对吗?为什么我会想要这种效果?
答案 0 :(得分:1)
事实上,浅色复制是最省力的方式,做得少。它特别适用于不可变对象,其中共享是最佳的。
不可变对象没有内部状态,无法更改,只能将变量设置为其他值。
在java String
中,BigDecimal
是不可变的。
不可变对象也可以更好地利用线程。
对于可变类,您可能对写时复制数据结构感兴趣,其中共享发生直到写入一个变量。