Java|Java对象克隆

Java|Java对象克隆

文章图片


为什么要克隆对象?直接new一个不行吗?
克隆的对象可能包含已经修改过的数据 , 而new的对象是初始化的数据 。 所以 , 克隆主要的目的就是为了保持对象的“状态”(即此时的数据) 。 虽然 , 可以通过new对象然后按照set方法一个个设置对象数据 。 但是 , 大型项目中大对象十分常见 , 不可能去一个一个设置对象 , 此时 , 克隆就十分有必要了 。
那么如何复制一个对象呢?
总所周知 , Object是所有类的父类 , 它提供了一个clone方法 , 用于实现clone操作 。 我们只需要覆盖Object类的clone方法即可 。
克隆的分类?
浅克隆:如果原型对象的成员变量是值类型 , 将复制一份给克隆对象;如果原型对象的成员变量是引用类型 , 则将引用对象的地址复制一份给克隆对象 , 也就是说原型对象和克隆对象的成员变量指向相同的内存地址 。
【Java|Java对象克隆】深克隆:在深克隆中 , 无论原型对象的成员变量是值类型还是引用类型 , 都将复制一份给克隆对象 , 深克隆将原型对象的所有引用对象也复制一份给克隆对象
具体 , 我们可以通过两张图来展示 。
浅克隆

深克隆

下一回 , 我们将仔细的探究两种克隆方式的不同!
\uD83D\uDE4F如果内容对您有帮助 , 希望您能多多点赞收藏加关注 , 激励作者创作出更加优质内容 , 谢谢!\uD83D\uDE4F