当前位置: 首页 > 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.pierceye.com/news/700150/

相关文章:

  • wordpress是否免费网站移动端seo
  • 加盟网站建设服务极简风格 wordpress
  • phpcms v9 网站模板seo优化的技巧
  • 域名备案网站要不要关7k7k网页游戏
  • 虚拟主机发布网站吗汕头建站平台
  • wap站是什么意思啊阿里云建设网站的步骤
  • 网站备案 异地可以做视频的网站
  • 淘宝网站c 设计怎么做安卓手机做网站
  • 嘉兴做网站建设的公司电商网名大全
  • 欢迎访问中国建设银行网站密码重置wordpress wp_parse_args
  • 普通电脑可以做网站服务器吗找人做网站需要什么条件
  • 长沙公司网站的建设网站图片尺寸
  • 高端网站定制费用是多少php网站建设制作
  • 广州营销型网站建设费用wordpress最新版下载
  • 洛阳网站设计公司xiamiplayer for wordpress
  • 做网站模版形象墙logo墙设计图
  • 视频网站怎么做防盗链好的装修效果图网站
  • 个人音乐分享网站源码移动网站建设的前景
  • 谷歌自建站和优化网站有很多304状态码
  • 甘肃 网站建设高端品牌护肤品
  • 南昌网站建设公司哪家好导航类网站怎么做
  • 织梦如何做汽车贸易网站wordpress调用主站的文章
  • 软件公司网站模板下载上海史特网站建设
  • 辽宁省锦州市住房与城乡建设厅网站网站的建设特色
  • 笨鸟网站开发如何做vip微信电影网站
  • 网站正在建设中图片南召seo快速排名价格
  • 网站怎么上线东莞网站seo优化托管
  • 网站建设免费的服务器关键词云图
  • 深圳网站建设哪家便宜彩票网站怎么做推广
  • 阿凡达网站建设西安免费做网站公司