clone的使用来龙去脉

cloneable  深复制

  

2019-10-14 22:35:33

Cloneable接口 clone: 它允许在堆中克隆出一块和原对象一样的对象,并将这个对象的地址赋予新的引用。 Java 中 一个类要实现clone功能 必须实现 Cloneable接口,否则在调用 clone() 时会报 CloneNotSupportedException 异常。 Java中所有类都默认继承java.lang.Object类,在java.lang.Object类中有一个方法c...

浅复制和深复制的概念 复制在Java中一般是复制一个已经存在的对象,我们都知道Java中有基本数据类型和引用数据类型,也正是因为这样,才会有浅复制和深复制的说法。 浅复制:如果是基本数据类型的话,会将值复制一份,如果是引用类型的话,会将引用变量复制一份,但是指向的还是同一个实例对象。 深复制:针对引用数据类型而来,意味复制的是实例对象的内容,而不是复制引用变量。 从图中可以看出,引用数据类型也被拷...

一 序   最初这篇打算放在arraylist里面整理,因为arraylist也是实现了clone接口。想想还是摘出来吧关于clone,就是复制。它允许在堆中克隆出一块和原对象一样的对象,并将这个对象的地址赋予新的引用。  Java 中 一个类要实现clone功能 必须实现 Cloneable接口,否则在调用 clone() 时会报 CloneNotSupportedExcep...

Java中的深拷贝,浅拷贝是一个很重要的概念,之前也曾因为这个问题在实际一个需求中翻过车,今天就把这个拿出来说一下,以下是这篇博客的大纲 一.引入 二.深拷贝&浅拷贝 三.clone方法&Cloneable接口 四.需要注意的问题 五.总结 一.引入 在以前有过这种因为浅拷贝出来的对象,改变了这个浅拷贝对象的某些属性值,导致原对象的属性也改变。 这其中就涉及到了Java中的深拷贝与...

java.lang.Cloneable和java.io.Serializable一样属于标记型接口,没有定义任何方法和属性。 一个类想要使用克隆方法 重写clone()方法,因为Object的clone()的修饰符是protected; 实现Cloneable接口,否则会抛出CloneNotSupportedException异常。 克隆类型 浅拷贝,拷贝对象时仅拷贝对象本身和对象中的基本变量,而...