文章图片
为什么要克隆对象?直接new一个不行吗?
克隆的对象可能包含已经修改过的数据 , 而new的对象是初始化的数据 。 所以 , 克隆主要的目的就是为了保持对象的“状态”(即此时的数据) 。 虽然 , 可以通过new对象然后按照set方法一个个设置对象数据 。 但是 , 大型项目中大对象十分常见 , 不可能去一个一个设置对象 , 此时 , 克隆就十分有必要了 。
那么如何复制一个对象呢?
总所周知 , Object是所有类的父类 , 它提供了一个clone方法 , 用于实现clone操作 。 我们只需要覆盖Object类的clone方法即可 。
克隆的分类?
浅克隆:如果原型对象的成员变量是值类型 , 将复制一份给克隆对象;如果原型对象的成员变量是引用类型 , 则将引用对象的地址复制一份给克隆对象 , 也就是说原型对象和克隆对象的成员变量指向相同的内存地址 。
【Java|Java对象克隆】深克隆:在深克隆中 , 无论原型对象的成员变量是值类型还是引用类型 , 都将复制一份给克隆对象 , 深克隆将原型对象的所有引用对象也复制一份给克隆对象
具体 , 我们可以通过两张图来展示 。
浅克隆
深克隆
下一回 , 我们将仔细的探究两种克隆方式的不同!
\uD83D\uDE4F如果内容对您有帮助 , 希望您能多多点赞收藏加关注 , 激励作者创作出更加优质内容 , 谢谢!\uD83D\uDE4F
- javascript|Web前端培训:JavaScript与Java和PHP的比较
- Java|欧尚电商营销创新启示录:模式创新的本质是用户思维的活跃
- Java|这一回,美彻底没辙了?
- Python『面向对象编程』—— 类和对象的基本概念、类和对象的关系、类的设计
- Java|基于java的格式转换word 转 pdf、word 转图片等
- Java|小米再次塑造“新爆款”,全球出货量突破100万,仅售249元起
- Java|我简直就是花7999买128G苹果13p 的大怨种
- 电子商务|基于java的格式转换word 转 pdf、word 转图片等
- javascript|京东618增长率历年最慢,阿里巴巴表示:难兄难弟
- javascript|618荣获多榜单第一,热门Mini LED电视Q10G高能来袭