java对象的复制,浅复制、深复制
来源:互联网 发布:驱鼠器真的有用吗 知乎 编辑:程序博客网 时间:2024/05/10 03:17
浅复制:将一个对象复制后,基本数据类型的变量都会重新创建,而引用类型,指向的还是原对象所指向的。
深复制:将一个对象复制后,不论是基本数据类型还有引用类型,都是重新创建的。简单来说,就是深复制进行了完全彻底的复制,而浅复制不彻底。
此处,写一个深浅复制的例子:
public class Prototype implements Cloneable, Serializable {
private static final long serialVersionUID = 1L; private String string; private SerializableObject obj; /* 浅复制 */ public Object clone() throws CloneNotSupportedException { Prototype proto = (Prototype) super.clone(); return proto; } /* 深复制 */ public Object deepClone() throws IOException, ClassNotFoundException { /* 写入当前对象的二进制流 */ ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(this); /* 读出二进制流产生的新对象 */ ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis); return ois.readObject(); }
要实现深复制,需要采用流的形式读入当前对象的二进制输入,再写出二进制数据对应的对象。
0 0
- java对象的复制,浅复制、深复制
- Java对象深复制、浅复制
- Java对象深复制与浅复制
- Java对象克隆(复制):深复制和浅复制
- Java对象的深复制和浅复制
- Java对象的深复制和浅复制
- Java对象的深复制和浅复制
- Java对象的深复制和浅复制
- Java对象的深复制和浅复制
- Java对象的深复制与浅复制
- 细说java对象的浅复制和深复制
- Java对象的深复制和浅复制
- Java对象的深复制和浅复制详解
- 对象的浅复制与深复制
- 对象的深复制和浅复制
- java的深复制和浅复制
- Java 深复制,浅复制
- JAVA深复制浅复制
- Unity3D研究之2D游戏开发制作原理
- <<诫子书>> 诸葛亮
- spring @Autowired和@@Qualifier 混合使用的例子
- 三种重要哈希介绍
- 2015第17周
- java对象的复制,浅复制、深复制
- ZOJ 3819 Average Score
- 最基本的JavaIO流操作代码
- ListView优化
- DDS 中间件 种类
- [LeetCode] Remove Linked List Elements
- HDU2050
- 内联函数和宏定义的区别
- Codeforces 538D Weird Chess 暴力、构造