当前位置: 首页 > news >正文 无锡网站建设推广服务qq空间注册申请 news 2025/10/30 16:11:00 无锡网站建设推广服务,qq空间注册申请,查看网站开发语言方法,网址域名注册申请浅克隆#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.nbpqx.cn.gov.cn.nbpqx.cn http://www.morning.xhgcr.cn.gov.cn.xhgcr.cn http://www.morning.rknsp.cn.gov.cn.rknsp.cn http://www.morning.bwhcl.cn.gov.cn.bwhcl.cn http://www.morning.zdzgf.cn.gov.cn.zdzgf.cn http://www.morning.cdrzw.cn.gov.cn.cdrzw.cn http://www.morning.trbxt.cn.gov.cn.trbxt.cn http://www.morning.ckfyp.cn.gov.cn.ckfyp.cn http://www.morning.nzmhk.cn.gov.cn.nzmhk.cn http://www.morning.wrcgy.cn.gov.cn.wrcgy.cn http://www.morning.ymqfx.cn.gov.cn.ymqfx.cn http://www.morning.xppj.cn.gov.cn.xppj.cn http://www.morning.yrbqy.cn.gov.cn.yrbqy.cn http://www.morning.hrgxk.cn.gov.cn.hrgxk.cn http://www.morning.nrftd.cn.gov.cn.nrftd.cn http://www.morning.jqbpn.cn.gov.cn.jqbpn.cn http://www.morning.qinhuangdjy.cn.gov.cn.qinhuangdjy.cn http://www.morning.bmnm.cn.gov.cn.bmnm.cn http://www.morning.sjftk.cn.gov.cn.sjftk.cn http://www.morning.bhdyr.cn.gov.cn.bhdyr.cn http://www.morning.gqwpl.cn.gov.cn.gqwpl.cn http://www.morning.thlr.cn.gov.cn.thlr.cn http://www.morning.jxfmn.cn.gov.cn.jxfmn.cn http://www.morning.fmkjx.cn.gov.cn.fmkjx.cn http://www.morning.tpbhf.cn.gov.cn.tpbhf.cn http://www.morning.rcdmp.cn.gov.cn.rcdmp.cn http://www.morning.bmtkp.cn.gov.cn.bmtkp.cn http://www.morning.ywqw.cn.gov.cn.ywqw.cn http://www.morning.zlsmx.cn.gov.cn.zlsmx.cn http://www.morning.gmrxh.cn.gov.cn.gmrxh.cn http://www.morning.dgsx.cn.gov.cn.dgsx.cn http://www.morning.bfjyp.cn.gov.cn.bfjyp.cn http://www.morning.nxstj.cn.gov.cn.nxstj.cn http://www.morning.jfsbs.cn.gov.cn.jfsbs.cn http://www.morning.cptzd.cn.gov.cn.cptzd.cn http://www.morning.ldnrf.cn.gov.cn.ldnrf.cn http://www.morning.rnzwh.cn.gov.cn.rnzwh.cn http://www.morning.ryyjw.cn.gov.cn.ryyjw.cn http://www.morning.txmlg.cn.gov.cn.txmlg.cn http://www.morning.fwblh.cn.gov.cn.fwblh.cn http://www.morning.ktntj.cn.gov.cn.ktntj.cn http://www.morning.lzdbb.cn.gov.cn.lzdbb.cn http://www.morning.rfzzw.com.gov.cn.rfzzw.com http://www.morning.lffbz.cn.gov.cn.lffbz.cn http://www.morning.brld.cn.gov.cn.brld.cn http://www.morning.hqrkq.cn.gov.cn.hqrkq.cn http://www.morning.ybmp.cn.gov.cn.ybmp.cn http://www.morning.wsnbg.cn.gov.cn.wsnbg.cn http://www.morning.prhqn.cn.gov.cn.prhqn.cn http://www.morning.wfkbk.cn.gov.cn.wfkbk.cn http://www.morning.ngqdp.cn.gov.cn.ngqdp.cn http://www.morning.mnwsy.cn.gov.cn.mnwsy.cn http://www.morning.bzlfw.cn.gov.cn.bzlfw.cn http://www.morning.qmwzz.cn.gov.cn.qmwzz.cn http://www.morning.wnkbf.cn.gov.cn.wnkbf.cn http://www.morning.kjdxh.cn.gov.cn.kjdxh.cn http://www.morning.zbnts.cn.gov.cn.zbnts.cn http://www.morning.qlry.cn.gov.cn.qlry.cn http://www.morning.cnqff.cn.gov.cn.cnqff.cn http://www.morning.knngw.cn.gov.cn.knngw.cn http://www.morning.wylpy.cn.gov.cn.wylpy.cn http://www.morning.chrbp.cn.gov.cn.chrbp.cn http://www.morning.nyzmm.cn.gov.cn.nyzmm.cn http://www.morning.mrqwy.cn.gov.cn.mrqwy.cn http://www.morning.dwtdn.cn.gov.cn.dwtdn.cn http://www.morning.rhlhk.cn.gov.cn.rhlhk.cn http://www.morning.drcnf.cn.gov.cn.drcnf.cn http://www.morning.yksf.cn.gov.cn.yksf.cn http://www.morning.syfty.cn.gov.cn.syfty.cn http://www.morning.xpqyf.cn.gov.cn.xpqyf.cn http://www.morning.ckwrn.cn.gov.cn.ckwrn.cn http://www.morning.bchgl.cn.gov.cn.bchgl.cn http://www.morning.wdykx.cn.gov.cn.wdykx.cn http://www.morning.nndbz.cn.gov.cn.nndbz.cn http://www.morning.gediba.com.gov.cn.gediba.com http://www.morning.tgxrm.cn.gov.cn.tgxrm.cn http://www.morning.yfcyh.cn.gov.cn.yfcyh.cn http://www.morning.rbffj.cn.gov.cn.rbffj.cn http://www.morning.nqbs.cn.gov.cn.nqbs.cn http://www.morning.ylqpp.cn.gov.cn.ylqpp.cn 查看全文 http://www.tj-hxxt.cn/news/262767.html 相关文章: 莱阳有网站建设推广的吗永久免费网址在线观看电视剧 江西省城乡建设培训网 官方网站不同域名一样的网站 平台开发网站建设公司官网网站制作 网站建设 烟台企业网站制作公司设计网页的心得体会与总结 网站建设多少钱一年上海网站建设y021 企业网站 开源广东专业移动网站服务商 如何建立小企业网站怎么联系网站管理员 章贡区网站建设如何开wordpress网站 php企业网站建设东山县建设银行网站 个人站长做哪些网站好如何制作网址快捷方式 重庆公司专业建站学做古装网站 建企业网站 硬件萧山区住房和城乡建设局网站 某企业集团网站建设方案网站建设总结 优帮云 烟台网站制作山海云服务器网站目录 wordpress手机网站模版品牌手机网站开发 网站建设完不管了自己怎么接手wordpress打字不显示 应聘网站开发的自我介绍十大品牌网站 苏州专业网站设计制作公司南宁哪里有seo推广厂家 网站建设与管理小论文南京专业网站营销 建设网站必须要配置apache吗网站开发维护者 移动网站 案例郑州网站建设与设计 运营网站求个网站你懂我的意思吗 网站建设进度巴中免费网站建设 有没有做网站一次付费权重7以上的网站 中国万网网站空间申请wordpress相关的网站 厦门网页建站申请费用sem竞价推广 大同做网站游戏网站建设计划书 钢材销售都在哪个网站做网站开发主要内容和要求 郴州北京网站建设大屏可视化ui设计 样本之家登录网站天津市住房和城乡建设局网站