美文网首页
Java对象克隆

Java对象克隆

作者: 星空下奔跑 | 来源:发表于2018-04-01 11:33 被阅读0次

在Java中数据类型分为值(基本数据类型)类型和引用类型。深克隆和浅克隆的重要区别在于是否支持引用类型(数组、类、接口等复杂类型)的成员变量的复制。

浅克隆(ShallowClone)

被Clone的类实现Clonenable接口,然后覆写clone()方法,得到clone的对象。

深克隆

在深克隆中,无论成员变量是值类型还是引用类型都会复制一份给克隆对象。

通过Clonenable接口

若被Clone的类中存在引用类型的成员变量,那么这个变量也需要实现Clonenalbe接口,并在被clone类的clone方法中调用成员变量类的clone方法。
若类中存在很多引用类型的成员变量,那么实现深克隆将非常麻烦。

通过序列化(Serialization)

通过将对象序列化写到流中,再通过反序列化从流中读出对象,可实现深克隆。
但引用类型的成员变量也必须实现Serializable接口。

基于序列化和反序列化实现的克隆不仅仅是深度克隆,更重要的时通过泛型限定,可以检查除要克隆的对象是否支持序列化,可以由编译器完成。

相关文章

  • 使用对象序列化和反序列化实现深度克隆

    java对象进行克隆,分为浅克隆和深克隆 浅克隆需要实现java.lang.Cloneable接口,并重写java...

  • java克隆

    java克隆 java克隆分为浅克隆和深克隆,概念如下: 浅拷贝(浅克隆)克隆出来的对象的所有变量都含有与原来的对...

  • 理解Java浅克隆和深克隆

    克隆概念 Java一切皆对象,克隆就是对对象的克隆;克隆可能听起来有点高级,也可以为对象复制或者对象拷贝。平时开发...

  • Java深复制浅复制解析.md

    Java 克隆概念 Java克隆分为深克隆和浅克隆两种类型。 浅复制(浅克隆)被复制对象的所有变量都含有与原来的对...

  • Java | 对象克隆

    浅拷贝 默认的克隆操作,也就是Object的 clone 方法是浅拷贝,浅拷贝只会拷贝对象属性的值,而不会拷贝对象...

  • Java对象克隆

    在Java中数据类型分为值(基本数据类型)类型和引用类型。深克隆和浅克隆的重要区别在于是否支持引用类型(数组、类、...

  • Java对象克隆

    引自:Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨https:/...

  • Java 对象克隆

    所谓的对象克隆描述的概念就是进行对象的赋值,当一个对象创建完成之后实际上都会自动的开辟内存空间,在每一块堆内存空间...

  • java 克隆对象

    P:java分基本数据类型和引用数据类型。 (1)假克隆: 对于 = 等于号的克隆形式, 基本数据类型是值拷贝.相...

  • Java 对象克隆

    Java的拷贝可以分为浅拷贝和深拷贝。 浅拷贝 原变量和拷贝变量引用同一个对象,改变一个变量锁引用的对象将会对另一...

网友评论

      本文标题:Java对象克隆

      本文链接:https://www.haomeiwen.com/subject/capocftx.html