java 深拷贝与浅拷贝

1.浅拷贝

第一种可以用 import org.apache.commons.beanutils.PropertyUtils;  这个工具类

PoolFttbVO dest=new PoolFttbVO();

//第一个参数为拷贝结果,第二个参数为 源拷贝对象

PropertyUtils.copyProperties(dest,orig);

第二种,对象实现Cloneable接口,并重写clone()方法

http://www.cnblogs.com/yxnchinahlj/archive/2010/09/20/1831615.html

点击打开链接


2.深拷贝

利用串行化来做深复制

http://www.cnblogs.com/HendSame-JMZ/p/6095003.html

http://www.cnblogs.com/yxnchinahlj/archive/2010/09/20/1831615.html

Java 中,深拷贝浅拷贝是指创建新对象并复制原有对象数据结构的过程,通常用于复杂的数据结构如数组、集合、对象等。它们的区别在于是否完全复制了对象的所有内容,包括嵌套的对象。 **浅拷贝**(Shallow Copy):它只是将原对象的引用复制给新对象。这意味着如果新对象中包含对原对象的引用,那么修改新对象会影响到原对象。在 Java 中,对于基本类型,浅拷贝就是简单地赋值;对于引用类型(如对象),则是复制指向内存地址的引用。 例如: ```java Object obj = new Object(); Object copy = obj; // 浅拷贝,copy 和 obj 引向同一块内存 List list = new ArrayList(); // 对象 List copyList = list; // 浅拷贝,list 和 copyList 都引用同一个ArrayList实例 ``` 修改 `copyList` 的元素会改变 `list`: ```java copyList.add("test"); System.out.println(list); // 输出 "test" ``` **深拷贝**(Deep Copy):则会对整个对象及其所有嵌套对象进行完整的副本操作,包括递归复制嵌套对象。这样改动一个深拷贝不会影响原始对象。在 Java 中,可以手动实现深拷贝,或者使用序列化反序列化的机制,比如 `Cloneable` 接口和 `Object.clone()` 方法(虽然不是所有类都实现了 Cloneable)。 例如: ```java Object obj = new Object(); Object deepCopy = SerializationUtils.deepCopy(obj); // 使用工具类的深拷贝方法 ``` 在这个例子中,`deepCopy` 是一个新的对象,它的状态与 `obj` 完全独立。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值