在java中,Object类位于java类层次的根部,其它所有的java类都继承自Object类。在Object类中,有一个方法叫clone()方法,代码为:protected native Object clone() throws CloneNotSupportedException; 该方法可用来进行克隆操作,其中native关键字是指clone()方法不是java语言写的方法,而是jvm调用的本地硬件或其它语言写的方法。因此,当Object的一个子类要有克隆功能时,就要覆盖父类的clone()方法。
java.lang包中,有一个Cloneable接口,该接口是一个空接口,只是用来指明一个对象是否可以被克隆。jdk源码如下所示:public interface Cloneable {};因此,如果Object的子类想要克隆时也要实现Cloneable接口。在代码中可以检验某个对象obj是否实现了Cloneable接口:if(obj instanceof Cloneable){......}else{......}
java默认的克隆方式是浅克隆,这种方式能够克隆源对象所有的值引用,但是,如果源对象里边有对象引用存在,浅克隆只能克隆源对象的对象引用,类似于克隆指向对象的指针,但是源对象的副本将会与源对象拥有相同的对象内容。深克隆则是把源对象中所引用的对象也克隆了一遍,这样就能够保证源对象的副本与源对象本身内容相同,但各自的改变不会影响对方。
分享到:
相关推荐
深度复制Java对象实例,复制后对象属性值改变不影响被复制对象,有注释
Java对象的复制与克隆,包含浅复制和深层复制。 免费下载啦,绝对值得一看。
一个详细讲解JAVA_对象克隆的例子 希望可以帮助到你。
java的两种深度克隆方法,1cloneTest是用Cloneable接口的clone方法实现(对象必须要实现cloneable接口).2cloneSerialize.java是用对象流写对象到byte数组中,然后从byte数组中取得对象.(对象必须要实现serializble接口)
model VO 值复制 注解 注解实现相同对象,不同对象,集合与集合复制,不再需要手动。 可以对多个对象进行复制,可以指定复制的类型
对象的克隆操作过程,展示了对象中数据字段是如何是实现克隆的
Java CopyUtil工具类,可以进行对象的深copy,比如:对象里面包含对象,对象里面包含Map,List,Set...等复杂类型的属性都可以copy,copy后的对象与原有对象没有联系,即改变原有对象内容,不会改变copy后的对象里面的...
model VO 值复制 注解 注解实现相同对象,不同对象,集合与集合复制,不再需要手动。 可以对多个对象进行复制,可以指定复制的类型
Java中对象的深复制和浅复制详解.doc
java中利用反射复制一个持久化对象
java 深克隆浅克隆···············
如何进行Java对象的克隆.pdf
java对象复制.pdf
主要介绍了Java编程实现对象克隆(复制)代码详解,涉及了克隆的原因,如何实现克隆,克隆的一般步骤,深克隆与浅克隆的介绍等相关内容,具有一定借鉴价值,需要的朋友可以参考下。
主要介绍了Java中对象的深复制(深克隆)和浅复制(浅克隆) ,需要的朋友可以参考下
java基础规范以及java对象的复制使用
现在Clone已经不是一个新鲜词语了,伴随着“多莉”的产生这个词语确实很“火”过一阵子,在java中也有这么一个概念,它可以让我们很方便的“制造”出一个对象的副本来,下面来具体看看java中的Clone机制是如何工作的...
Java对象的深克隆与浅克隆详解.zip
NULL 博文链接:https://ollevere.iteye.com/blog/1323205
编程语言java对象复制.pdf