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

工业和信息化部网站备案php网站开发优势

工业和信息化部网站备案,php网站开发优势,做阿里巴巴网站费用,盐城网站建设找宇在开发过程中#xff0c;创建多个数据相同的对象#xff0c;每次new都开销比较大#xff0c;在这里可以使用对象克隆#xff0c;以先创建的原型对象为模板进行对象的复制。这种模式是实现了一个原型接口#xff0c;该接口用于创建当前对象的克隆。当直接创建对象的代价比较… 在开发过程中创建多个数据相同的对象每次new都开销比较大在这里可以使用对象克隆以先创建的原型对象为模板进行对象的复制。这种模式是实现了一个原型接口该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时则采用这种模式。例如一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象在下一个请求时返回它的克隆在需要的时候更新数据库以此来减少数据库调用 浅克隆 在浅克隆中如果原型对象的成员变量是值类型将复制一份给克隆对象如果原型对象的成员变量是引用类型则将引用对象的地址复制一份给克隆对象也就是说原型对象和克隆对象的成员变量指向相同的内存地址 public class Person implements  Cloneable{​int num;String name;​public Person() {}​public Person(int num, String name) {this.num num;this.name name;}​public int getNum() {return num;}​public void setNum(int num) {this.num num;}​public String getName() {return name;}​public void setName(String name) {this.name name;}​​​Overrideprotected Person clone() throws CloneNotSupportedException {Person person (Person)super.clone();return person;}​Overridepublic String toString() {return Person{ num num , name name \ };}} public class Test {​public static void main(String[] args) throws CloneNotSupportedException {​Person p1 new Person(100,jim);Person p2 p1.clone();//clone方法 返回一个新对象p2.name tom;System.out.println(p1);//100 ,jimSystem.out.println(p2);//100 tom​System.out.println(p1p2);//false​}} 深克隆 多层克隆 在深克隆中无论原型对象的成员变量是值类型还是引用类型都将复制一份给克隆对象深克隆将原型对象的所有引用对象也复制一份给克隆对象。简单来说在深克隆中除了对象本身被复制外对象所包含的所有成员变量也将复制 public class Person implements  Cloneable{​int num;String name;Address address;​public Person() {​}​public Person(int num, String name) {this.num num;this.name name;}​public int getNum() {return num;}​public void setNum(int num) {this.num num;}​public String getName() {return name;}​public void setName(String name) {this.name name;}​public Address getAddress() {return address;}​public void setAddress(Address address) {this.address address;}​Overrideprotected Person clone() throws CloneNotSupportedException {Person person (Person)super.clone();person.address address.clone();   //深度复制 联同person中关联的对象也一同克隆.return person;}​Overridepublic String toString() {return Person{ num num , name name \ , address address };}}​ public class Address  implements Cloneable{​String  address;​public String getAddress() {return address;}​public void setAddress(String address) {this.address address;}​Overridepublic String toString() {return Address{ address address \ };}​Overrideprotected Address clone() throws CloneNotSupportedException {return (Address) super.clone();}} 序列化 public class Address  implements Serializable {​String  address;​public String getAddress() {return address;}​public void setAddress(String address) {this.address address;}​Overridepublic String toString() {return Address{ address address \ };}​} public class Person implements Serializable {​int num;String name;Address address;​public Person() {}​public Person(int num, String name) {this.num num;this.name name;}​public int getNum() {return num;}​public void setNum(int num) {this.num num;}​public String getName() {return name;}​public void setName(String name) {this.name name;}​public Address getAddress() {return address;}​public void setAddress(Address address) {this.address address;}​/*** 自定义克隆方法* return*/public Person myclone() {Person person null;try { // 将该对象序列化成流,因为写在流里的是对象的一个拷贝而原对象仍然存在于JVM里面。所以利用这个特性可以实现对象的深拷贝ByteArrayOutputStream baos new ByteArrayOutputStream();ObjectOutputStream oos new ObjectOutputStream(baos);oos.writeObject(this);// 将流序列化成对象ByteArrayInputStream bais new ByteArrayInputStream(baos.toByteArray());ObjectInputStream ois new ObjectInputStream(bais);person (Person) ois.readObject();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}return person;}​​Overridepublic String toString() {return Person{ num num , name name \ , address address };}} 练习 题目页面 (kamacoder.com) import java.util.Scanner;public class Main {public static void main(String[] args) throws CloneNotSupportedException {Scanner scanner new Scanner(System.in);int num scanner.nextInt();while(num--0){String color scanner.next();int width scanner.nextInt();int height scanner.nextInt();Prototype prototype new Prototype(color, width, height);Prototype clone prototype.clone();System.out.println(clone.toString());}} }class Prototype implements Cloneable{private String color;private int width;private int height;public Prototype(String color, int width, int height) {this.color color;this.width width;this.height height;}Overridepublic String toString() {return Color: color , Width: width , Height: height;}Overrideprotected Prototype clone() throws CloneNotSupportedException {return (Prototype) super.clone();}}
http://www.pierceye.com/news/104834/

相关文章:

  • 浏阳市网站建设百度中心人工电话号码
  • 高端外贸网站制作智慧团建网站没有验证码
  • 做网站需要买服务器么网站建设营销外包公司排名
  • 网站建设中要多使用图片258网站建设
  • 做多语言网站教程开网页慢是什么原因
  • 汽车商城网站模板seo公司网站推广
  • 网站备案查询工信部官网网站建设费用推荐网络专业
  • 网站开发费用是研发费用国内做seo最好公司
  • 什么是网站建设公司企业网站后台管理
  • 做网站阿里巴巴好还是百度好柠檬网络科技网站建设
  • 做个网站要多少钱网站建设工作 方案
  • 一个主体如何添加网站室内设计公司的名字
  • 中国建设学会网站洛阳市住房和城乡建设局网站
  • 北京网站优化方式做物流的网站都有什么风险
  • 零基础学做网站页怎么部署wordpress
  • 网站如何做死链接提交筑站网络推广
  • 小说网站开发php网站后台如何修改文字
  • 网站制作是那个带有客户案例的网站
  • 中国纪检监察报数字报湛江关键词优化平台
  • 网站品牌词如何优化东莞公司网站建设营销型网站建设
  • 鞍山网站建设营销想把自己做的网站放到网上
  • 松原公司做网站青岛工程建设管理信息网官方网站
  • 一个空间2个网站网站 手机 app
  • 河北网站建设方案详细磁器口网站建设
  • 怎么做网站树洞wordpress edd 会员
  • 购物网站中加减数目的怎么做仿站违法吗
  • 代理ip访问网站局门户网站的建设
  • 建网站业务如何开展阳江房产信息网官网
  • 企业网站建设套餐费用网站开发完后期维护重要吗
  • 3营销型网站建设湖北短视频seo推荐