java中浅拷贝和深拷贝-爱代码爱编程
一、前言
拷贝的目的就是为了获得相同的对象,当需要属性值相同的对象时,不需要再重新一步一步创建
在Java中的拷贝需要实现Clonable接口,重写Object的clone()方法;同时在Java中的拷贝也分为浅拷贝和深拷贝,其两者的区别就在于对 对象中引用数据类型的不同处理方法。即:
浅拷贝就是克隆出来的新对象与原对象完全一致,包括引用类型字段的值。这就会有一个现象,针对引用类型的字段,两个对象的引用地址一致,如此一来新旧对象之间强关联,修改其中一个对象的内容,极可能影响到另外一个的内容,此时可以使用BeanUtils.copyProperties方法
深拷贝是针对浅拷贝而言的,当一个对象中套一个对象,对对象中的对象中的字段值进行修改时为了不影响原对象中的数据
例如如下的代码:
当对象中套list集合,集合入参为对象时
BondTradeReqVo bondTradeReqVo1 = new BondTradeReqVo(