实际开发中可能会需要在一个对象的基础上拷贝一份相同的对象,与原始对象没有关联。这就需要了解下面的java浅拷贝和深拷贝。
一,浅拷贝
在原有的对象上面创建一个新对象,就是开辟新的空间然后将属性值拷贝过去,这里的属性分为两种情况:第一是基本类型的属性,就是直接将值拷贝过去。第二引用类型的属性,就是将内存地址(引用)进行拷贝,如果原有对象的引用类型的属性值改变了,引用值也会改变。
二,深拷贝
在原有的对象上面创建一个新对象,同时引用类型的属性也会进行内存地址(引用)的拷贝。
三,实现方式
对象实现Cloneable接口,实现clone方法,调用super.clone()的工作就是创建新的对象,分配内存地址,然后赋值给一个新的变量,实现了一次浅拷贝。深拷贝就要使用属性的clone方法。
网友评论