深浅拷贝_序列化

利用jdkapi自己实现序列化

image-20230313133108235

浅拷贝

java中的中的浅拷贝, 是指实现jdk的一个接口,然后调用 clone方法的一个对象复制操作

1。浅拷贝中 ,clone方法后,如果原型对象的成员变量是值类型,拷贝后相当于在程序中 重新生成 了一个对象和原型对象一样的对象 ,这时堆内存中重新开辟空间,引用也要改变如下图

private int phone;

private int age;

image-20230311172852523

2。如果原型对象中的成员变量 是引用 对象 (Interger和String也属于引用对象,但比较特殊,下文我会提到), 拷贝后也会有个引用 ,但是引用 对象拷贝是内存拷贝,只拷贝内存地址值(也就是出现了一个新的引用还是指向原先的地址 ,你改这个对象 就一起改了自然就会出现值相等一改都改的情况)

image-20230311180213396

image-20230311180513285

3。有一种情况除外 不可变引用常量

String、Integer 等包装类都是不可变的对象,当需要修改不可变对象的值时,需要在内存中生成一个新的对象来存放新的值,然后将原来的引用指向新的地址,所以在这里我们修改了 jonh属性值,jonh 对象的 name 字段指向了内存中新的 name 对象,但是我们并没有改变 jack 对象的 name 字段的指向,所以 jack 对象的 name 还是指向内存中原来的 name 地址,也就没有变化

image-20230311192149277

image-20230311192511336

深拷贝

对象序列化深拷贝

image-20230311220921313d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值