深度拷贝与浅度拷贝

深度拷贝与浅度拷贝的区别主要在于有没有为拷贝出的新对象在堆中重新分配一块内存区域。浅度拷贝即直接赋值,拷贝的只是原始对象的引用地址,在堆中仍然共用一块内存。而深度拷贝为新对象在堆中重新分配一块内存,所以对新对象的操作不会影响原始对象。 关于为什么要用深度拷贝,如果要将可变对象和不可变对象相互转换,或者需要操作新对象的时候不影响原始对象,则用深度拷贝。copy-on-write原则就是利用深度拷贝来
相关文章
相关标签/搜索