码迷,mamicode.com
首页 > 编程语言 > 详细

Java对象的深复制----利用串行化进行深复制

时间:2015-08-11 07:04:13      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

把对象写到流里的过程是串行化(Serilization)过程,但是在Java程序圈里又非常形象地称为“冷冻”或者“腌咸菜”过程;而把对象从流中读出来的并行化(Deserialization)过程则叫做“解冻”或者“回鲜”过程。应当指出的是,写到流里的是对象的一个拷贝,而原来对象仍然存在于JVM里面,因此“腌成咸菜”的只是对象的一个拷贝。

在Java语言里深复制一个对象,常常可以先使对象实现Serializable接口,然后把对象(实际上只是对象的一个拷贝)写到一个流里(腌成咸菜),再从流里读回来,便可以重建对象。

public class DeepCopyDemo implements Serializable{
	public Object deepClone() throws Exception
	{
		//将对象写到流里
		ByteArrayOutputStream bo=new ByteArrayOutputStream();
		ObjectOutputStream oo=new ObjectOutputStream(bo);
		oo.writeObject(this);
		//将对象读出来
		ByteArrayInputStream bi=new ByteArrayInputStream(bo.toByteArray());
		ObjectInputStream oi=new ObjectInputStream(bi);
		return (oi.readObject());
	}
}

 

Java对象的深复制----利用串行化进行深复制

标签:

原文地址:http://www.cnblogs.com/xtsylc/p/4719806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!