克隆作为创建对象的一种方式,有着深克隆与浅克隆之分,以下是我对他们的理解
浅克隆:指的是,克隆一个对象,新对象的成员实例与原对象的成员实例具有相同的引用,即指向同一块内存地址。只要新对象成员实例指向的内容发生改变,访问原对象的成员实例时,内容也发生改变。
深克隆:指的是,克隆一个对象,新对象的成员实例与原对象的成员实例具有相同的值(内容相同),但是引用时不同的,即分别指向两块内存。改变新对象的成员实例的内容,原对象的成员实例中的内容不会被改变,因为他们的引用不同,不是指向同一块内存空间。
浅克隆实现:克隆的对象实现Cloneable接口,重写clone方法,成员实例不需实现Cloneable接口
深克隆实现:除了对象需要实现CLoneable接口和重写clone方法外,对象的成员实例递归地也应该实现Cloneable接口和重写clone方法。之所以“递归”是因为,对象的成员实例也可能有成员实例,这个时候也需要实现Cloneable接口和重写clone方法
本文详细解释了克隆对象的两种方式:深克隆与浅克隆。浅克隆使得新旧对象的成员实例指向同一内存,修改一方另一方也会变化;而深克隆则完全复制成员实例,确保独立性。文章还介绍了实现这两种克隆方式的具体方法。

1683

被折叠的 条评论
为什么被折叠?



