广告
返回顶部
首页 > 资讯 > 精选 >java 对象的克隆(浅克隆和深克隆)
  • 861
分享到

java 对象的克隆(浅克隆和深克隆)

java对象克隆 2023-05-31 10:05:18 861人浏览 安东尼
摘要

java 对象的克隆一、对象的浅克隆(1)需要克隆类需要重写Object类的clone方法,并且实现Cloneable接口(标识接口,无需实现任何方法) (2)当需要克隆的对象中维护着另外一个引用对象,浅克隆不会克隆另外一个引用对下,而是直

java 对象的克隆

一、对象的浅克隆

(1)需要克隆类需要重写Object类的clone方法,并且实现Cloneable接口(标识接口,无需实现任何方法)
(2)当需要克隆的对象中维护着另外一个引用对象,浅克隆不会克隆另外一个引用对下,而是直接复制维护的另外一个引用对象的地址。
(3)对象的浅克隆也不会调用到构造方法。

以下为对象的浅克隆的一个例子:

package com.clone;import java.io.Serializable;public class CloneDemo1 implements Cloneable,Serializable{  //该克隆类封装的信息  public int id;  public String name;  public Address address;    public CloneDemo1(){}    public CloneDemo1(int id, String name, Address address){    this.id=id;    this.name=name;    this.address = address;  }    @Override  public Object clone() throws CloneNotSupportedException{    return super.clone();  }    @Override  public String toString(){    return "id="+id+", name="+name+", address:"+address.getAddress();  }    public static void main(String[] args) throws CloneNotSupportedException{    CloneDemo1 c1 = new CloneDemo1(1,"c1",new Address("北京"));    //c2 复制了c1的地址,并没有复制整个c1对象    CloneDemo1 c2 = c1;    //c3 对象的浅克隆,复制了整个对象    CloneDemo1 c3 = (CloneDemo1)c1.clone();    //当对象c1改变其name或者id的时候,c2也会自动改变。    //因为c2只是复制了c1的地址,并非复制了c1的整个对象。    //相应的c3则不会随着c1改变而改变,意味着c3将c1整个对象克隆一份出来。    //当是,对象的浅克隆不会克隆被克隆对象当中的引用对象。    //因此c1改变其中的Address的引用对象时,c2,c3也会跟着改变。    c1.setName("cc");    c1.address.setAddress("上海");    System.out.println(c1+"\n"+c2+"\n"+c3);  }  public int getId() {    return id;  }  public void setId(int id) {    this.id = id;  }  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }}class Address implements Serializable{  public String address;    public Address(){}    public Address(String address){    this.address = address;  }  //address的set和get方法  public String getAddress() {    return address;  }  public void setAddress(String address) {    this.address = address;  }}

--结束END--

本文标题: java 对象的克隆(浅克隆和深克隆)

本文链接: https://www.lsjlt.com/news/224702.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java 对象的克隆(浅克隆和深克隆)
    java 对象的克隆一、对象的浅克隆(1)需要克隆类需要重写Object类的clone方法,并且实现Cloneable接口(标识接口,无需实现任何方法) (2)当需要克隆的对象中维护着另外一个引用对象,浅克隆不会克隆另外一个引用对下,而是直...
    99+
    2023-05-31
    java 对象 克隆
  • java深克隆与浅克隆有什么区别
    Java中的深克隆(deep clone)和浅克隆(shallow clone)是指对象克隆时的不同方式。浅克隆是指在克隆对象时,只...
    99+
    2023-08-30
    java
  • 浅析Java中clone()方法浅克隆与深度克隆
       现在Clone已经不是一个新鲜词语了,伴随着“多莉”的产生这个词语确实很“火”过一阵子,在Java中也有这么一个概念,它可以让我们很方便的“制造”出一个对象的副本来,下面来具体看看Java中的Clone机制是如何工...
    99+
    2023-05-31
    java clone 浅克隆
  • Cloneable接口的作用、深克隆与浅克隆是什么
    Cloneable接口的作用是在对象进行克隆操作时提供一个标识,即表明该对象是可克隆的。Cloneable接口是一个标记接口,没有定...
    99+
    2023-10-23
    Cloneable
  • 浅谈克隆 JavaScript
    目录1、浅克隆2、深克隆1、浅克隆 浅克隆无法copy数组和对象 var obj = { name : "abs", age : '18', sex :...
    99+
    2022-11-12
  • Cloneable接口的作用与深入理解深度克隆与浅度克隆
    Cloneable接口的作用是标识一个类可以被克隆。当一个类实现了Cloneable接口,就表示该类可以创建一个与自身相同的对象。深...
    99+
    2023-09-13
    Cloneable
  • vue对象的深度克隆方式
    目录vue对象的深度克隆方法1方法2方法3vue克隆对象时遇到的问题vue对象的深度克隆 方法1 通过js序列化,将js转换成字符串,然后再将字符串转换成js对象 var olbOb...
    99+
    2022-11-13
  • jQuery如何克隆对象
    小编给大家分享一下jQuery如何克隆对象,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!克隆对象$(document).read...
    99+
    2022-10-19
  • JAVA对象创建与对象克隆
    目录一、对象的4种创建方式二、通过new创建对象三、反射四、克隆对象浅拷贝深拷贝五、反序列化六、补充一、对象的4种创建方式 new 创建反射克隆反序列化 二、通过new创建对象 一般...
    99+
    2022-11-13
  • Java对象克隆怎么实现
    本篇内容主要讲解“Java对象克隆怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java对象克隆怎么实现”吧! Overiew在实际编程中,我们经常会遇到这样一个情景:有一个对象A,存在...
    99+
    2023-06-17
  • java怎么实现对象克隆
    在Java中,可以通过两种方式来实现对象克隆:浅拷贝和深拷贝。1. 浅拷贝:使用Object类的clone()方法进行对象的浅拷贝。...
    99+
    2023-08-18
    java
  • oracle的克隆
    oracle on linux安装多台服务器时可以采用一次安装副本多台克隆即可,简单快速.   ************************...
    99+
    2022-10-18
  • Java基础:对象的克隆(复制)
    假如想复制一个简单变量。很简单: int apples = 5;int pears = apples; 不仅int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类...
    99+
    2023-09-26
    数据结构
  • java克隆对象的方法有哪些
    在Java中,克隆对象的方法有以下几种:1. 实现Cloneable接口并重写clone()方法:该方法是Object类中的方法,需...
    99+
    2023-09-25
    java
  • Java克隆对象的特性是什么
    本篇内容介绍了“Java克隆对象的特性是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在java面向对象的编程当中,要复制引用类型的对象...
    99+
    2023-06-17
  • JAVA对象创建与对象克隆的方法
    这篇文章主要介绍了JAVA对象创建与对象克隆的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JAVA对象创建与对象克隆的方法文章都会有所收获,下面我们一起来看看吧。一、对象的4种创建方式new 创建反射克隆...
    99+
    2023-06-29
  • javascript如何实现深克隆
    小编给大家分享一下javascript如何实现深克隆,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-19
  • VB.NET中怎么实现对象克隆
    VB.NET中怎么实现对象克隆,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在3DMAX里面,做好一个物体(父物体)以后,可以选择Edit菜单中的Clone,下面有三中选项...
    99+
    2023-06-17
  • Java引用对象深度克隆的方法是什么
    在Java中,要实现对象的深度克隆,你可以使用以下方法之一:1. 实现`Cloneable`接口并重写`clone()`方法:```...
    99+
    2023-09-27
    Java
  • JavaScript如何实现多级对象的深度克隆
    这篇文章给大家分享的是有关JavaScript如何实现多级对象的深度克隆的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。多级对象的深度克隆要深度克隆多级对象,可以遍历每个属性,并检查当前属性是否包含对象。如果是,则...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作