深拷贝和浅拷贝(Shallow Copy and Deep Co
2020-05-10 本文已影响0人
杨斌_1024
概述
这里的拷贝是指在java中如何将对象复制一份。有深拷贝和浅拷贝之分。
浅拷贝是对象在复制时,基础数据类型进行值传递、引用传递类型进行引用传递的过程。
深拷贝是对象的完全复制(包括引用类型的完全复制)。
![](https://img.haomeiwen.com/i21501654/df2d3eea0a4c3f27.png)
实现浅拷贝的方式
1.使用构造函数拷贝
![](https://img.haomeiwen.com/i21501654/ce48f387c3d5f190.png)
2.实现Cloneable接口拷贝
![](https://img.haomeiwen.com/i21501654/3f1d35bb6fbd9169.png)
实现深拷贝的方式
1.实现Cloneable接口,并在clone函数中对引用对象再次拷贝。
![](https://img.haomeiwen.com/i21501654/5e273a58f4b0f885.png)
2.序列化拷贝
![](https://img.haomeiwen.com/i21501654/81bb31ae6b5c7dc8.png)
![](https://img.haomeiwen.com/i21501654/154f9d2d73661a20.png)
参考资料