您的位置 首页 java

Java对象克隆

为什么要克隆对象?直接new一个不行吗?

克隆的对象可能包含已经修改过的数据,而new的对象是初始化的数据。所以,克隆主要的目的就是为了保持对象的“状态”(即此时的数据)。虽然,可以通过new对象然后按照set方法一个个设置对象数据。但是,大型项目中大对象十分常见,不可能去一个一个设置对象,此时,克隆就十分有必要了。

那么如何复制一个对象呢?

总所周知,Object是所有类的父类,它提供了一个clone方法,用于实现clone操作。我们只需要覆盖Object类的clone方法即可。

克隆的分类?

浅克隆:如果原型对象的成员变量是值类型,将复制一份给克隆对象;如果原型对象的成员变量是引用类型,则将引用对象的地址复制一份给克隆对象,也就是说原型对象和克隆对象的成员变量指向相同的内存地址。

深克隆:在深克隆中,无论原型对象的成员变量是值类型还是引用类型,都将复制一份给克隆对象,深克隆将原型对象的所有引用对象也复制一份给克隆对象

具体,我们可以通过两张图来展示。

浅克隆

深克隆

下一回,我们将仔细的探究两种克隆方式的不同!

如果内容对您有帮助,希望您能多多点赞收藏加关注,激励作者创作出更加优质内容,谢谢!

文章来源:智云一二三科技

文章标题:Java对象克隆

文章地址:https://www.zhihuclub.com/190013.shtml

关于作者: 智云科技

热门文章

网站地图