java实现深拷贝_Java的深拷贝的两种实现

该博客内容涉及Java对象的复制方法,通过序列化和反序列化实现深拷贝。博主详细介绍了如何使用ByteArrayOutputStream和ObjectOutputStream将对象写入字节数组,然后再通过ByteArrayInputStream和ObjectInputStream读取,从而得到一个复制的对象。博客主要讨论了Java中的IO流和序列化技术。
摘要由CSDN通过智能技术生成

public static Object copy(Object oldObj) {

Object obj = null;

try {

// Write the object out to a byte array

ByteArrayOutputStream bos = new ByteArrayOutputStream();

ObjectOutputStream out = new ObjectOutputStream(bos);

out.writeObject(oldObj);

out.flush();

out.close();

// Retrieve an input stream from the byte array and read

// a copy of the object back in.

ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());

ObjectInputStream in = new ObjectInputStream(bis);

obj = in.readObject();

} catch (IOException e) {

e.printStackTrace();

} catch (ClassNotFoundException cnfe) {

cnfe.printStackTrace();

}

return obj;

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-04-15 22:58

浏览 1289

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值