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

鹤壁企业网站建设南昌百度推广公司

鹤壁企业网站建设,南昌百度推广公司,从山海经取公司名三个字,公司做企业网站作者简介#xff1a; zoro-1#xff0c;目前大一#xff0c;正在学习Java#xff0c;数据结构等 作者主页#xff1a; zoro-1的主页 欢迎大家点赞 #x1f44d; 收藏 ⭐ 加关注哦#xff01;#x1f496;#x1f496; 浅拷贝与深拷贝 浅拷贝浅拷贝定义浅拷贝代码演示浅… 作者简介 zoro-1目前大一正在学习Java数据结构等 作者主页 zoro-1的主页 欢迎大家点赞 收藏 ⭐ 加关注哦 浅拷贝与深拷贝 浅拷贝浅拷贝定义浅拷贝代码演示浅拷贝的特点 深拷贝深拷贝定义深拷贝代码演示深拷贝特点 浅拷贝 之前我们学了数组的拷贝那么对象如何进行拷贝呢 浅拷贝定义 浅拷贝是一种复制对象的方法在这种方法中只复制对象的引用或指针而不是对象本身的内容。 浅拷贝代码演示 class Hia{int a6; } class Animal {String nameanimal;int age0;Hia hianew Hia();public Animal(String name, int age) {this.name name;this.age age;}Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} } public class Text4 {public static void main(String[] args) throws CloneNotSupportedException {Animal dognew Animal(dog,5);Animal dogcopy(Animal) dog.clone();} } 代码讲解 初始化Animal类为dog对象现在想要copy一份dog对象就要了解clone方法他是object类里面的方法也就是Animal的父类的方法因为所有类都是继承object类这个类是由protected修饰所以我们不能直接调用他的最大访问权限是不同包下的子类对象且只能用super访问所以要在定义一个不带static修饰的方法下面访问我这里采用的是重写父类的clone方法返回super.clone();clone的返回值对象是object所以要强转为(Animal); 上面的代码运行出来结果还是错的 原因是在java里面只有实现Cloneable接口才说明这个类是支持拷贝的虽然这个接口什么都没有); 浅拷贝的特点 特点是他只是将你类里面的变量的值赋值下来不会将你成员对象引用的也赋值一份下面这个图就能很好解释 当然我们也可以用代码直观的看出来 public class Text4 {public static void main(String[] args) throws CloneNotSupportedException {Animal dognew Animal(dog,5);Animal dogcopy(Animal) dog.clone();System.out.println(dog.hia.a);System.out.println(dogcopy.hia.a);dog.hia.a9;System.out.println(dog.hia.a);System.out.println(dogcopy.hia.a);} }通过运行结果可以看出来我们发现该变原对象的hia.a复制的对象的hia.a也发生了改变这说明复制后的hia和前面指向的是同一个引用 想要将复制里面的引用也复制一份就要用到深拷贝 深拷贝 深拷贝定义 深拷贝是指在拷贝一个对象时创建一个新的对象并将原对象的所有属性值都复制到新对象中而不是简单地复制对象的引用地址。因此在深拷贝后两个对象之间是完全独立的互不影响。深拷贝通常用于需要完全复制原对象的情况例如在多线程环境下操作对象时为了避免不同线程间共享对象导致的数据冲突就需要使用深拷贝。深拷贝是指在拷贝一个对象时创建一个新的对象并将原对象的所有属性值都复制到新对象中而不是简单地复制对象的引用地址。 深拷贝代码演示 class Hia implements Cloneable{int a6;Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} } class Animal implements Cloneable{String nameanimal;int age0;Hia hianew Hia();public Animal(String name, int age) {this.name name;this.age age;}Overrideprotected Object clone() throws CloneNotSupportedException {Animal animal(Animal) super.clone();animal.hia(Hia) animal.hia.clone();return animal;} } public class Text4 {public static void main(String[] args) throws CloneNotSupportedException {Animal dognew Animal(dog,5);Animal dogcopy (Animal) dog.clone();System.out.println(dog.hia.a);System.out.println(dogcopy.hia.a);dog.hia.a9;System.out.println(dog.hia.a);System.out.println(dogcopy.hia.a);} } 代码解释 我的理解是深拷贝是两层浅拷贝现将对象进行一次拷贝然后再将dog对象里面的引用对象拷贝一份赋值给新的对象的里面的引用对象譬如上面的代码重写的clone()方法里面先super.clone()复制一份当前类的对象然后类里面的引用类型Hia调用clone()复制一份再赋值给animal.hia那现在animal就是就是彻底的拷贝了然后返回animal然后改变dog类里面的hia.a打印输出只有dog类里面的改变了 深拷贝特点 深拷贝是一种复制数据的方式它会创建一个完全独立的副本而不是原始数据的引用。深拷贝的特点如下 完全独立深拷贝会创建一个全新的对象而不是原对象的引用。 完整复制深拷贝会复制所有的属性和方法包括对象的嵌套属性和方法。 递归复制如果对象有嵌套属性或方法深拷贝会递归复制嵌套对象的属性和方法。 不受原对象改变影响因为深拷贝生成的对象完全独立所以它不会受到原对象的更改的影响。 需要注意的是深拷贝可能会导致性能问题特别是当数据结构非常复杂时。因为深拷贝会复制所有的属性和方法包括对象的嵌套属性和方法所以可能需要花费大量的时间和内存来完成。 今天的分享到这里就结束了感谢大家支持创作不易希望大家能给博主个三连
http://www.zqtcl.cn/news/700150/

相关文章:

  • 电脑网站视频怎么下载珠海免费网站制作
  • wordpress menu icon咸阳seo
  • php制作网站网站开发与客户沟通
  • 百度网站建设平台微盟微商城官网
  • 三明网站seo上海中学分数线
  • 青岛谷歌网站建设网站建站公司排名
  • 成都旅游网站建设规划windows优化大师官方
  • 福永网站建设公司哪家好财务公司承兑汇票
  • 青岛快速建站模板制作公司网页什么价位
  • 网站建设公司的经营范围wordpress设置文本编辑器
  • 做网站用微软雅黑侵权吗wordpress 同类文章
  • 免费下载建设银行官方网站自己做网站犯法吗
  • 手机网站html代码附近做广告牌的店
  • 建设和优化网站的步骤wordpress 模板 含数据库
  • 太原制作网站的工作室wordpress弹幕播放器
  • 英语网站开发菏泽做网站优化的
  • 宜昌建设网站公司做网站语言服务器 空间
  • 湖南做网站价格广州网站建设哪家便宜
  • 建筑工程素材资源网站中山做网站建设联系电话
  • 做网站关键词集团网站群建设方案
  • 网站开发有哪些课程网站开发好要租服务器吗
  • 鲜花店网站建设的规模设想网站之间的差异
  • 网站怎么在百度做推广郑州建网站
  • 机关门户网站建设顺义做网站
  • 网站开发公司东莞环球军事头条
  • 企业网站管理系统添加教程如何用python开发网页
  • 公司网站建设需要资质wordpress admin
  • 万维网网站301重定向怎么做国家城乡建设规划部网站
  • 现在的网站内容区域做多宽俄文网站开发翻译
  • 上海闵行建设局官方网站做电影网站的流程