Dav*_*rey 5 reference value-type deep-copy shallow-copy
我理解浅拷贝和深拷贝之间的区别,但我真的不明白在什么情况下会首选浅拷贝。
如果我没有记错的话,浅复制会创建值类型的新副本,并简单地复制引用类型的地址,以便它们指向同一个对象,对吗?为什么我想要这种效果?
事实上,浅复制是最省力、做得更少的方法。它特别适合不可变对象,在这种情况下共享是最佳的。
不可变对象没有内部状态,不能更改,只能将变量设置为另一个值。
在java中String和BigDecimal是不可变的。
不可变对象也允许更好地利用线程。
对于可变类,您可能对写时复制数据结构感兴趣,其中共享发生直到写入一个变量。