当前位置: 首页 > news >正文

龙华专业网站建设seo网络营销技术

龙华专业网站建设,seo网络营销技术,胖子马wordpress模板 q8免费版,网站用哪些系统做的好处引言 clone顾名思义就是复制#xff0c; 在Java语言中#xff0c; clone方法被对象调用#xff0c;所以会复制对象。所谓的复制对象#xff0c;首先要分配一个和源对象同样大小的空间#xff0c;在这个空间中创建一个新的对象。那么在java语言中#xff0c;有几种方式可…引言 clone顾名思义就是复制 在Java语言中 clone方法被对象调用所以会复制对象。所谓的复制对象首先要分配一个和源对象同样大小的空间在这个空间中创建一个新的对象。那么在java语言中有几种方式可以创建对象呢  1 使用new操作符创建一个对象  2 使用clone方法复制一个对象  那么这两种方式有什么相同和不同呢 new操作符的本意是分配内存。程序执行到new操作符时 首先去看new操作符后面的类型因为知道了类型才能知道要分配多大的内存空间。分配完内存之后再调用构造函数填充对象的各个域这一步叫做对象的初始化构造方法返回后一个对象创建完毕可以把他的引用地址发布到外部在外部就可以使用这个引用操纵这个对象。而clone在第一步是和new相似的 都是分配内存调用clone方法时分配的内存和源对象即调用clone方法的对象相同然后再使用原对象中对应的各个域填充新对象的域 填充完成之后clone方法返回一个新的相同的对象被创建同样可以把这个新对象的引用发布到外部。【详解Java中的clone方法】 拷贝的种类 引用拷贝 package design.pattern.copy; /*** 引用拷贝* br类名CiteCopybr* 作者 mhtbr* 日期 2018年4月1日-下午6:13:37br*/ public class CiteCopy {public static void main(String[] args) {Student s1 new Student();Student s2 s1;System.out.println(s1 \n s2);} } 结果 design.pattern.copy.Student6d06d12f design.pattern.copy.Student6d06d12f 对象拷贝 package design.pattern.copy; /*** 对象拷贝* br类名Copybr* 作者 mhtbr* 日期 2018年4月1日-下午6:13:37br*/ public class Copy {public static void main(String[] args) {Student s1 new Student();Student s2 (Student) s1.clone();System.out.println(s1 \n s2);} } 结果 design.pattern.copy.Student15db9742 design.pattern.copy.Student6d06d69c 浅拷贝 package design.pattern.copy; /*** 浅拷贝* br类名Copybr* 作者 mhtbr* 日期 2018年4月1日-下午6:13:37br*/ public class Copy {public static void main(String[] args) {Student s1 new Student();Teacher t1 new Teacher();s1.setTeacher(t1);System.out.println(t1的内存地址 t1);Student s2 (Student) s1.clone();// 两个学生对象的内存为System.out.println(s1 \n s2);// 两个学生对象中的老师对象为System.out.println(s1.getTeacher() \n s2.getTeacher());} }结果 t1的内存地址design.pattern.copy.Teacher15db9742 design.pattern.copy.Student6d06d69c design.pattern.copy.Student7852e922 design.pattern.copy.Teacher15db9742 design.pattern.copy.Teacher15db9742深拷贝 通过clone方式实现的拷贝默认是采用浅拷贝的方式即只拷贝调用clone方法的对象而对象内部引用的成员变量对象则不会一同进行复制因此就算是将内部的对象再进行clone拷贝依然会出现内部对象的内部引用对象没有复制的问题。所以一般情况下clone可以实现不彻底的深拷贝无法实现彻底的深拷贝。 通过Serializable实现深拷贝会真正的实现整个对象的复制。 package design.pattern.copy;import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable;public class Student implements Serializable{private String name;private int age;private Teacher teacher;public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public Teacher getTeacher() {return teacher;}public void setTeacher(Teacher teacher) {this.teacher teacher;}/*** 深拷贝* br作者 mhtbr * 时间2018年4月1日-下午10:53:41br* return*/protected Object deepClone(){try {// 序列化ByteArrayOutputStream bos new ByteArrayOutputStream();ObjectOutputStream oos new ObjectOutputStream(bos);oos.writeObject(this);// 反序列化ByteArrayInputStream bis new ByteArrayInputStream(bos.toByteArray());ObjectInputStream ois new ObjectInputStream(bis);return ois.readObject();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}return null;} }package design.pattern.copy;import java.io.Serializable;public class Teacher implements Serializable{private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;} } package design.pattern.copy; /*** Serializable序列化深拷贝* br类名Copybr* 作者 mhtbr* 日期 2018年4月1日-下午6:13:37br*/ public class Copy {public static void main(String[] args) {Student s1 new Student();Teacher t1 new Teacher();s1.setTeacher(t1);System.out.println(t1的内存地址 t1);System.out.println();Student s2 (Student) s1.deepClone();// 两个学生对象的内存为System.out.println(s1 \n s2);System.out.println();// 两个学生对象中的老师对象为System.out.println(s1.getTeacher() : s1.getTeacher() \ns2.getTeacher() : s2.getTeacher());} }结果 t1的内存地址design.pattern.copy.Teacher15db9742design.pattern.copy.Student3d4eac69 design.pattern.copy.Student232204a1s1.getTeacher() : design.pattern.copy.Teacher15db9742 s2.getTeacher() : design.pattern.copy.Teacher4aa298b7从上述结果可以看出不仅student对象进行了复制其s1内部的teacher对象也一同被复制了一个新的对象出来。但是要注意的是Teacher类也一定要实现Serializable接口才可以否则会产生NotSerializableException的运行时异常。
http://www.zqtcl.cn/news/380312/

相关文章:

  • wordpress能不能做企业网站软件技术和计算机网络技术哪个好
  • 甘肃省住房和城乡建设部网站首页ip怎么做网站
  • 怎么开一家网站开发公司百度推广一年大概需要多少钱
  • 小破站下载h5企业模板网站
  • 服务器怎么设置ip做网站凌云seo博客
  • 莱芜四大金刚是谁啊镇江网站优化推广
  • 上海门户网站开发企业号码查询系统
  • 西安做网站设计的公司golang 网站开发 教程
  • 做网站哪些公司专业做app软件开发公司
  • 蒙特网站建设湖北省建设厅网站上岗证查询
  • 宁波网站建设 联系哪家电子商务网站建设过程范文
  • 南宁商城网站建设网站建设的需求文档
  • dedeampz 部署wordpress 网站访问慢如何评价网站是否做的好处
  • 怎样建设个人影视网站设计学专业
  • 没有公司 接单做网站网站建设加盟合作
  • 如何将域名和网站绑定做网站找投资人
  • 网站开发 平台WordPress首页可见
  • 沧州做网站费用打开上海发布
  • 重庆潼南网站建设公司电话网站能调用一些字体
  • 摄影网站设计素材做彩票网站电话多少
  • 开网站公司企业管理网课
  • 相城高端网站建设施工建设集团网站
  • .电子商务网站的开发原则包括网络服务示范区创建情况
  • 网站如何做权重php做网站登陆验证
  • 昆山制造网站的地方网站建设 有聊天工具的吗
  • 自己做网站制作需要多少钱如何免费注册网站域名
  • 如何做网站美化怎样写网站文案
  • 做网站排名的wordpress 调整 行距
  • 三亚文明城市建设服务中心报名网站房地产活动策划网站
  • 休闲食品网站建设规划书常德做网站专业公司