1.浅复制与深复制概念
浅复制(浅克隆)
被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。
深复制(深克隆)
被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复制了一遍。
2.为什么要克隆
2.1一般是赋值
地址空间指向同一地方。一个两都会改变。
2.2克隆
使数值相同,地址空间不同,多一个对象
2.3克隆好处
我们要对一个对象去测试时候,就可以去克隆一个新的对象。也可以做备份的功能
3.浅克隆的使用
4.深克隆的使用
和浅克隆的区别是,深克隆要克隆的对象有对象属性。如
所以我们要去克隆对象里面对象属性。
4.1 代码展示
5.深克隆小坑或小诀窍
如果没有在对象中克隆里面的对象,则克隆的对象里面的对象是相同的。(地址)
一般我们要的效果是:
5.1 深克隆小坑或小诀窍代码展示
6.小结
希望大家有什么排版不好,多多指教。