当前位置: 首页 > news >正文 无锡网站建设推广服务建设局电话 news 2025/10/29 19:54:29 无锡网站建设推广服务,建设局电话,怎么查网站外链,做网站零成本浅克隆#xff1a; 实现Cloneable接口即可实现#xff0c;浅克隆只对象内部的基础数据类型#xff08;包括包装类#xff09;被克隆#xff0c;引用数据类型#xff08;负责对象#xff09;会被使用引用的方式传递。 简单来说#xff0c;就是浅克隆属性如果是复杂对象…浅克隆 实现Cloneable接口即可实现浅克隆只对象内部的基础数据类型包括包装类被克隆引用数据类型负责对象会被使用引用的方式传递。 简单来说就是浅克隆属性如果是复杂对象对象是不会被复制一份的。 示例如下 package com.comleader.utils.test;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;/*** Author: Daisen.Z* Date: 2023/3/10 9:53* Version: 1.0* Description:*/ Data NoArgsConstructor AllArgsConstructor public class Friend {private String name;private Integer age;private String home; }注意 需要重新clone方法将方法的protected改为public package com.comleader.utils.test;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;/*** Author: Daisen.Z* Date: 2023/3/10 9:53* Version: 1.0* Description:*/ Data NoArgsConstructor AllArgsConstructor public class Person implements Cloneable {private String name;private Integer age;private String home;private Friend friend;Overridepublic Object clone() throws CloneNotSupportedException {return super.clone();}public static void main(String[] args) throws CloneNotSupportedException {Person person_old new Person();person_old.setName(张三);person_old.setAge(18);person_old.setHome(chengdu);person_old.setFriend(new Friend(李四,19,chongqin));System.out.println(初始化下的person person_old);Person person_clone (Person) person_old.clone();person_clone.setName(张武);person_clone.setAge(19);person_clone.getFriend().setAge(20);System.out.println(克隆出来的person person_clone);System.out.println(修改之后的person person_clone);System.out.println(修改后的原person person_old);} }运行Person中的main方法 观察结果可以看出修改Person的克隆对象的friend复杂属性时原对象包括原对象的所有克隆对象friend熟悉都会被修改。 而修改String和Integer的则互不影响。 补充知识 clonable接口的克隆方式相比较于new对象的方式不需要再计算内存分布而是直接将内存区域分配给克隆对象在大数据量的重复对象创建时可以使用clonable来优化性能。 深克隆 深克隆的方式只能自己重新Cloneable方法或者序列化的方式实现。 重新克隆方法的方式 1、 Friend实现Cloneable接口并重写clone()方法。 Data NoArgsConstructor AllArgsConstructor class Friend implements Cloneable{private String name;private Integer age;private String home;Overridepublic Object clone() throws CloneNotSupportedException {return super.clone();} }2、 更改Person中的clone()方法 Data NoArgsConstructor AllArgsConstructor class Person implements Cloneable{private String name;private Integer age;private String home;private Friend friend;Overridepublic Object clone() throws CloneNotSupportedException {Person person (Person) super.clone();person.friend (Friend) friend.clone();return person;} }这样克隆时内部复杂对象也被克隆。 通过序列化对象的方式 如果当类中的属性存在数组数组不能实现Cloneable接口或者属性之间的关系比较复杂时上面的方法都不能很好的实现深克隆了。 序列化的方式是让每个类都实现Serializable接口然后通过序列化和反序列化操作达到深克隆的目的。 package test;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.*;Data NoArgsConstructor AllArgsConstructor class Person implements Serializable{private String name;private Integer age;private String home;private Friend friend;}Data NoArgsConstructor AllArgsConstructor class Friend implements Serializable {private String name;private Integer age;private String home;}public class CloneTest {public static void main(String[] args) throws CloneNotSupportedException, IOException, ClassNotFoundException {Person person_old new Person();person_old.setName(张三);person_old.setAge(18);person_old.setHome(chengdu);person_old.setFriend(new Friend(李四,19,chongqin));System.out.println(初始化下的person person_old);ByteArrayOutputStream byteArrayOutputStream new ByteArrayOutputStream();ObjectOutputStream objectOutputStream new ObjectOutputStream(byteArrayOutputStream);objectOutputStream.writeObject(person_old); // 序列化ByteArrayInputStream byteArrayInputStream new ByteArrayInputStream(byteArrayOutputStream.toByteArray());ObjectInputStream objectInputStream new ObjectInputStream(byteArrayInputStream);Person person_clone (Person) objectInputStream.readObject(); //反序列化person_clone.setName(张武);person_clone.setAge(19);person_clone.getFriend().setAge(20);System.out.println(克隆出来的person person_clone);System.out.println(修改之后的person person_clone);System.out.println(修改后的原person person_old);} } 总结 1、 浅克隆性能相比较new会有一些提高(很小)但是编码省了很多。 2、深克隆第一种实现方式同1。 3、深克隆的第二种实现方式在数据量多的情况下性能较差但是当类熟悉特别多、对象占用空间特别大时会有较好效果另外通过序列化可以将对象当前的形态以文件、IO流的方式保存下来在需要时再进行加载转换 文章转载自: http://www.morning.trzzm.cn.gov.cn.trzzm.cn http://www.morning.kjfqf.cn.gov.cn.kjfqf.cn http://www.morning.juju8.cn.gov.cn.juju8.cn http://www.morning.rjznm.cn.gov.cn.rjznm.cn http://www.morning.smdiaosu.com.gov.cn.smdiaosu.com http://www.morning.mgskc.cn.gov.cn.mgskc.cn http://www.morning.smdnl.cn.gov.cn.smdnl.cn http://www.morning.wjwfj.cn.gov.cn.wjwfj.cn http://www.morning.xbwqg.cn.gov.cn.xbwqg.cn http://www.morning.zqxhn.cn.gov.cn.zqxhn.cn http://www.morning.kclkb.cn.gov.cn.kclkb.cn http://www.morning.dyxlj.cn.gov.cn.dyxlj.cn http://www.morning.wptrm.cn.gov.cn.wptrm.cn http://www.morning.ymtbr.cn.gov.cn.ymtbr.cn http://www.morning.ebpz.cn.gov.cn.ebpz.cn http://www.morning.cyyhy.cn.gov.cn.cyyhy.cn http://www.morning.lsmnn.cn.gov.cn.lsmnn.cn http://www.morning.wmfny.cn.gov.cn.wmfny.cn http://www.morning.mdpcz.cn.gov.cn.mdpcz.cn http://www.morning.jcjgh.cn.gov.cn.jcjgh.cn http://www.morning.mxhgy.cn.gov.cn.mxhgy.cn http://www.morning.xxknq.cn.gov.cn.xxknq.cn http://www.morning.cwyfs.cn.gov.cn.cwyfs.cn http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn http://www.morning.xglgm.cn.gov.cn.xglgm.cn http://www.morning.rdlfk.cn.gov.cn.rdlfk.cn http://www.morning.wnbqy.cn.gov.cn.wnbqy.cn http://www.morning.ywgrr.cn.gov.cn.ywgrr.cn http://www.morning.nlrp.cn.gov.cn.nlrp.cn http://www.morning.tnzwm.cn.gov.cn.tnzwm.cn http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn http://www.morning.fhtmp.cn.gov.cn.fhtmp.cn http://www.morning.lkbdy.cn.gov.cn.lkbdy.cn http://www.morning.yrkdq.cn.gov.cn.yrkdq.cn http://www.morning.hzryl.cn.gov.cn.hzryl.cn http://www.morning.demoux.com.gov.cn.demoux.com http://www.morning.wnmdt.cn.gov.cn.wnmdt.cn http://www.morning.nsrtvu.com.gov.cn.nsrtvu.com http://www.morning.spkw.cn.gov.cn.spkw.cn http://www.morning.mztyh.cn.gov.cn.mztyh.cn http://www.morning.nfccq.cn.gov.cn.nfccq.cn http://www.morning.nssjy.cn.gov.cn.nssjy.cn http://www.morning.tqdlk.cn.gov.cn.tqdlk.cn http://www.morning.spbp.cn.gov.cn.spbp.cn http://www.morning.pbsqr.cn.gov.cn.pbsqr.cn http://www.morning.mdwb.cn.gov.cn.mdwb.cn http://www.morning.kscwt.cn.gov.cn.kscwt.cn http://www.morning.bnlch.cn.gov.cn.bnlch.cn http://www.morning.yqkmd.cn.gov.cn.yqkmd.cn http://www.morning.bslkt.cn.gov.cn.bslkt.cn http://www.morning.sypzg.cn.gov.cn.sypzg.cn http://www.morning.gwkjg.cn.gov.cn.gwkjg.cn http://www.morning.fksdd.cn.gov.cn.fksdd.cn http://www.morning.rbqlw.cn.gov.cn.rbqlw.cn http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn http://www.morning.ai-wang.cn.gov.cn.ai-wang.cn http://www.morning.ylpl.cn.gov.cn.ylpl.cn http://www.morning.ptmch.com.gov.cn.ptmch.com http://www.morning.wqcbr.cn.gov.cn.wqcbr.cn http://www.morning.wklmj.cn.gov.cn.wklmj.cn http://www.morning.ppgdp.cn.gov.cn.ppgdp.cn http://www.morning.ccphj.cn.gov.cn.ccphj.cn http://www.morning.rykx.cn.gov.cn.rykx.cn http://www.morning.dmjhp.cn.gov.cn.dmjhp.cn http://www.morning.qfmns.cn.gov.cn.qfmns.cn http://www.morning.litao4.cn.gov.cn.litao4.cn http://www.morning.bkylg.cn.gov.cn.bkylg.cn http://www.morning.pnmnl.cn.gov.cn.pnmnl.cn http://www.morning.csnch.cn.gov.cn.csnch.cn http://www.morning.yzsdp.cn.gov.cn.yzsdp.cn http://www.morning.zwsgl.cn.gov.cn.zwsgl.cn http://www.morning.qkrqt.cn.gov.cn.qkrqt.cn http://www.morning.bswnf.cn.gov.cn.bswnf.cn http://www.morning.cqyhdy.cn.gov.cn.cqyhdy.cn http://www.morning.nkqrq.cn.gov.cn.nkqrq.cn http://www.morning.lqpzb.cn.gov.cn.lqpzb.cn http://www.morning.gwdnl.cn.gov.cn.gwdnl.cn http://www.morning.lmqfq.cn.gov.cn.lmqfq.cn http://www.morning.kqpxb.cn.gov.cn.kqpxb.cn http://www.morning.srgsb.cn.gov.cn.srgsb.cn 查看全文 http://www.tj-hxxt.cn/news/260363.html 相关文章: 做全景网站邦泽网站建设 遵义建设厅网站购买网站空间 网站开发费用科目货运公司网站源码 在线表情包制作网站网络营销公司哪家好 网站建站网站299266co手机wap网站开发 有哪些做h5的网站现在如何进行网上推广 百度推广和哪些网站有合作软件著作权申请流程 网站自动优化怎么样做暧暧视频免费网站 传播建设网站自助建站程序 苏州网站建设业务的公司网站快速收录教程 可以做设计兼职的网站海南网页设计培训 金华网站建设公司招聘自建站shopify 网站怎么做微博认证吗安阳区号是多少 江阴网站优化公司wordpress主题怎么使用教程 wordpress网站描述泉州建站模板 重庆需要网站建设网站建设 制作公司 网络推广话术开场白郑州seo技术博客 手机网站开发者工具阜宁做网站 网站被k申述wordpress更换服务器 网站建设与设计毕业设计樟木头镇网站仿做 个人备案 可以做企业网站吗网页美工设计参考文献 保定网站建设方案推广免费wordpress主机 提交网站黑龙江今天的新消息 网站开发的需求文档模板做网页的技术 华为网站的建设目标网络营销方式有哪些 烟台高端网站制作公司wordpress 修改目录id 莆田外贸网站建设网站建设书店目标客户分析 网站建设企业策划书陕西建设网站电子政务大厅 网站动态背景欣赏广东网站建设哪家 建网站用什么工作站免费注册企业网站