java代码详细分析浅复制与深复

1.浅复制与深复制概念

浅复制(浅克隆)
被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。

深复制(深克隆)
被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复制了一遍。

2.为什么要克隆

2.1一般是赋值

地址空间指向同一地方。一个两都会改变。
在这里插入图片描述

2.2克隆

使数值相同,地址空间不同,多一个对象
在这里插入图片描述

2.3克隆好处

我们要对一个对象去测试时候,就可以去克隆一个新的对象。也可以做备份的功能

3.浅克隆的使用

在这里插入图片描述

在这里插入图片描述

4.深克隆的使用

和浅克隆的区别是,深克隆要克隆的对象有对象属性。如
在这里插入图片描述
所以我们要去克隆对象里面对象属性。

4.1 代码展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.深克隆小坑或小诀窍

如果没有在对象中克隆里面的对象,则克隆的对象里面的对象是相同的。(地址)
在这里插入图片描述
一般我们要的效果是:
在这里插入图片描述

5.1 深克隆小坑或小诀窍代码展示

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200828162803275.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MjE2Njkx,size_16,color_FFFFFF,t_70#pic_center
在这里插入图片描述

6.小结

希望大家有什么排版不好,多多指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值