Java浅克隆与深克隆区别详解与实现,以及String类型属性克隆为什么不受影响?克隆clone()方法中为什么是super.clone()

1. 浅克隆实现

public class CloneTest {
    public static void main(String[] args) throws CloneNotSupportedException {
        Student s = new Student(18, new String("lhj"), new Hobby("ping-pang"));
        Student s1 = s.clone();
        System.out.println(s);
        System.out.println(s1);

        s1.age = 19;
        s1.name = new String("lkj");
        s1.hobby.hobby1 = new String("basketball");

        System.out.println("修改后========");
        System.out.println(s);
        System.out.println(s1);
    }
}

// 实现Cloneable接口
class Student implements Cloneable{
    int age;
    String name;
    Hobby hobby;

    Student(int age, String name, Hobby hobby){
        this.age = age;
        this.name = name;
        this.hobby = hobby;
    }

    @Override
    public Student clone() throws CloneNotSupportedException {
        return (Student) super.clone();  // 调
Javaclone方法详解_动力节点Java学院整理
08-30
Javaclone方法详解Java语言clone方法是一个非常重要的概念,它允许对象被复制,从而创造出一个新的对象。下面我们将详细介绍Javaclone方法,并讨论它的实现机制和应用场景。 什么是clone方法 ...
Java拷贝和拷贝(一文足矣),及String类型的坑。
张小凡
04-01 6724
阿里有一道这样的面试题:一个实现Cloneable的类clone()后的String类型数据,是拷贝还是拷?
java super.clone_Java高级特性:clone()方法
weixin_31143391的博客
02-13 622
源码public class Objcet{protected native Object clone() throws CloneNotSupportedException();}由源码可知。第一:Objcet类的clone()方法是一个native方法。native方法的执行效率一般远高于Java的非native方法(一般不是java语言所写)。这也解释了为什么要用Object的clone(...
java字符串克隆,java对象的克隆克隆
weixin_30015371的博客
03-21 380
引言:在Object基类,有一个方法clone,产生一个前期对象的克隆克隆对象是原对象的拷贝,由于引用类型的存在,有克隆克隆之分,若克隆对象存在引用类型属性克隆会将此属性完全拷贝一份,而克隆仅仅是拷贝一份此属性的引用。首先看一下容易犯的几个小问题clone方法是Object类的,并不是Cloneable接口的,Cloneable只是一个标记接口,标记接口是用用户标记实现该接口...
java clone 父类_Javasuper.clone()方法和继承
weixin_36410904的博客
02-13 679
小编典典听起来这里至少有两个问题在起作用:听起来您对clone()的正常实现方式感到困惑。听起来您好像在想克隆是个好主意(与使用复制构造函数,工厂或其等效对象相比)。这是克隆方法实现示例:@Overridepublic Object clone() throws CloneNotSupportedException {//get initial bit-by-bit copy, which ha...
个人理解Java克隆克隆
前人栽树,后人乘凉。
08-10 142
3. 拷贝类(包括其成员变量)需要实现Serializable接口。1. 可用性较差,每次新增成员变量可能需要修改clone()方法。2. 拷贝类(包括其成员变量)需要实现Cloneable接口。3. 拷贝类(包括其成员变量)需要实现默认的无参构造函数。2. 对拷贝类没有要求,不需要实现额外接口和方法。1. 可用性强,新增成员变量不需要修改拷贝方法。1. 可用性强,新增成员变量不需要修改拷贝方法。1. 可用性强,新增成员变量不需要修改拷贝方法。3. 序列化与反序列化存在一定的系统开销。
java super.clone解释_super.clone()做了什么
weixin_30969157的博客
02-28 2222
java对象如果想被克隆,它对应的类需要implements标志接口Cloneable。如果不重写clone()方法,则在调用clone()方法实现的是复制(所有的引用对象保持不变,意思是如果原型里这些对象发生改变会直接影响到复制对象)。重写clone()方法,一般会先调用super.clone()进行复制,然后再复制那些易变对象,从而达到复制的效果。千言万语不如代码:public clas...
Java拷贝与拷贝
L_explorer的博客
12-30 679
Java组合与聚合是非常重要的两个内容,本文主要来解释与区别两者。 概念 组合: 顾名思义,就是使用多个已有的对象组合为一个功能更加复杂强大的新对象。体现的是整体与部分、拥有的关系。又因为在对象之间,各自的内部细节是不可见的,所以我们也说这种方式的代码复用是黑盒式代码复用。 聚合: ...
javaclone方法_javaclone方法
weixin_42302142的博客
02-21 160
Java我们可能都遇到过这样的情况,在我们将一个对象做为参数传给一个函数的候,我们希望在这个函数所做的操做,并不会影响到这个对象本身。但是在java传递都是引用,所以往往我们在函数内部改变了对象的某一个值,在函数外面调用该对象的候,相应的值也同样被改变了,例如下面的程序:class Test{static void myMethod(Point pt1){pt1.x = 23;System...
java拷贝_java拷贝和拷贝
weixin_33258874的博客
02-12 474
转自http://blog.sina.com.cn/s/blog_700aa8830101jtlf.htmlJava对象的创建clone顾名思义就是复制, 在Java语言clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间创建一个新的对象。那么在java语言,有几种方式可以创建对象呢?1 使用new操作符创建一个对象2 使用clon...
javasuper.clone()在存在继承关系的类上,最终克隆的是哪个类?
rolling_kitten的博客
05-09 1320
clone克隆存在继承关系的类super.clone();最终克隆的是哪个类的问题: 当子类和父类都重写了clone()方法,因为clone必须最终调用object类的clone方法才能完成克隆,那么,对子类对象克隆,由于子类的clone方法里一定存在super.clone(),那么就会调用父类的clone方法,最终返回的为什么不是父类的克隆对象?在这过程,为什么没发生父类对象赋给子类引用产生的编译错误? 示例代码: class Father implements Cloneable{
Java对象的复制和复制详解.doc
10-03
对象复制分为两种主要类型复制(克隆)和复制(克隆)。理解这两种复制方式的区别对于优化程序性能和避免意外数据更改至关重要。 1. **复制(克隆)** 复制是指创建一个新对象,该对象拥有原始...
详解Java的设计模式编程的原型模式
09-02
2. 拷贝与拷贝:默认的`clone()`方法进行的是拷贝,只复制对象本身,而不复制对象引用的对象。对于包含复杂数据结构(如数组或集合)的对象,可能需要实现拷贝,以确保所有数据都被完整复制。 3. `clone()`...
Java设计模式-原型模式详解
11-24
Java 设计模式 - 原型模式详解 原型模式是 Java 设计模式之一,它用于创建对象,指定创建对象的类型,并通过拷贝这些原型创建新的对象。该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原...
详解JAVA 原型模式
08-19
2. **需要实现Cloneable接口**: 这可能意味着打破类的封装性,因为`clone()`方法默认是受保护的。 **应用场景** 1. **资源密集型对象的创建**:如果创建一个对象需要大量计算或访问外部资源,使用原型模式可提高...
Java克隆克隆的原理及三种方式实现克隆
终生学习践行者
03-26 5073
本文详细介绍了Java克隆克隆的概念,及案例演示如何实现克隆
clone()方法复制和复制
开着奥迪卖小猪
06-30 1449
clone方法   Java没有明确提供指针的概念和用法,而实质上没个new语句返回的都是一个指针的引用,只不过在大部分情况下开发人员不需要关心如何去操作这个指针而已。   在实际编程,经常会遇到从某个已有对象A创建出另一个与A具有相同状态的对象B,并且B的修改不会影响到A的情况,例如Prototype(原型)模式,就需要clone一个对象实例。   仅仅通过简单的复制操作显然无法达到这个目
【常用类】Clone方法
技术|方法|思想
07-27 525
定义一个Person类: import java.sql.Date; public class Person implements Cloneable{ public String name; public int age; public Date date; public Person(){} public Person(String name,in
第四章 JAVA基础之clone方法
屌丝程序员的奋斗之路
09-13 1900
最近在看java集合的相关源码,在看集合的相关源码的候发现了clone方法,下面是自己对clone方法的一些理解。         一.概括             我们手上有一个对象的候,我们还想要一个一样的对象,最先想到的方法是new一个出来,再往里面设置一模一样的值,这样做完全可以,但有更简单的方法,那就是用clone方法,不过在用clone方法候我们有几点需要注意的地方:
java 克隆克隆区别
最新发布
11-13
Java克隆分为克隆克隆两种方式。克隆只是复制了对象的引用,而不是对象本身,因此对克隆对象的修改会影响到原对象。而克隆则是将对象及其引用对象一起复制,因此对克隆对象的修改不会影响到原对象。 ...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • HTML页面引入另一个HTML页面,比如各个页面引入通用的网站头部、尾部、导航栏 25399
  • 线性结构(顺序存储和链式存储)和非线性结构的特点及区别 20831
  • Python多进程multiprocessing共享数据Value(包括常用的整数、字符串)、列表及字典以及Queue 15315
  • Java引入import其它目录的自定义包或java源文件 14841
  • Python使用matplotlib画图,设置曲线颜色、类型及标记 13042

分类专栏

  • 操作系统 5篇
  • C++ 4篇
  • 运动控制——卡尔曼 1篇
  • Python 16篇
  • Java 60篇
  • 机器人 2篇
  • ROS 9篇
  • 路径规划 5篇
  • gazebo 3篇
  • V-rep 1篇
  • MySQL 7篇
  • JavaWeb 4篇
  • Redis 14篇
  • nginx 2篇
  • 算法题 3篇
  • spring 1篇
  • IDEA 1篇
  • 串口pyserial 1篇
  • 前端小技巧 2篇
  • Tomcat热部署配置
  • 单片机
  • Unity3D 2篇

最新评论

  • Ubuntu下报错PCIe Bus Error:severity=Corrected, type=Physical Layer, id=00e8(Receiver ID)

    m0_52975770: 请问这个重启后怎么确认设置成功了呢,有没有什么方法从什么地方看出来

  • 运行launch文件报错Roslaunch got a ‘No such file or directory‘ error while attempting to run:

    2201_75285469: 怎么解决啊 怎么新建py文件啊

  • 运行launch文件报错Roslaunch got a ‘No such file or directory‘ error while attempting to run:

    Yaadon: 感谢楼主,尝试各种办法报错no such file or directory,但报的路径又明明存在文件,用楼主的方法终于没问题了

  • Java中的System.out.println到底是什么,而且Java源码中System.java的out是null,为什么可以调用println方法?

    晨晨OvO: 写的很好表情包

  • UR驱动包安装过程及遇到问题的解决方案

    zzj1234zzj: 你好,我也遇到了相同的问题,请问您这个问题解决了吗

大家在看

  • 代码随想录算法训练营第二天| 977.有序数组的平方 、 209.长度最小的子数组、 59.螺旋矩阵II。 628
  • Arduino IDE下载、安装和配置
  • create-vite 脚手架-部分源码分析
  • Linux Vim最全面的教程
  • 详细前端新手小白的Vue3入坑指南 227

最新文章

  • centos升级cmake之相关问题解决
  • Ubuntu18.04安装docker-io
  • 静态链接库与动态链接库的区别及Windows下的使用
2023年2篇
2022年14篇
2021年104篇
2020年49篇
2019年10篇
2018年1篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司木棉湾seo优化西乡外贸网站建设大芬企业网站设计双龙网站优化荷坳网站关键词优化广州企业网站设计木棉湾SEO按天收费光明模板网站建设塘坑网站优化按天收费大鹏模板制作石岩百姓网标王推广大浪至尊标王坑梓网站优化按天计费爱联设计公司网站坪山SEO按效果付费木棉湾seo网站优化大浪百姓网标王广州seo排名盐田优化平湖营销网站荷坳外贸网站建设南联网站优化软件东莞seo优化龙华seo网站推广南澳设计公司网站龙岗模板推广松岗seo网站优化坪地关键词按天扣费双龙SEO按天扣费福永网站优化按天扣费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化