ICloneable接口的浅拷贝与深拷贝
来源:互联网 发布:linux内核修改cpu频率 编辑:程序博客网 时间:2024/05/12 03:26
ICloneable接口支持克隆,即用与现有实例相同的值创建类的新实例。ICloneable 接口包含一个成员Clone,它用于支持除 MemberwiseClone (创建当前Object的浅表副本)所提供的克隆之外的克隆。MSDN上给出MemberwiseClone方法的解释是MemberwiseClone 方法创建一个浅表副本,方法是创建一个新对象,然后将当前对象的非静态字段复制到该新对象。如果字段是值类型的,则对该字段执行逐位复制。如果字段是引用类型,则复制引用但不复制引用的对象;因此,原始对象及其复本引用同一对象。
下面先介绍下有关克隆、 深与浅副本,1.浅拷贝:将对象的字段复制到副本(新的对象)中,同时将字段的值也赋值过去,但是引用类型字段只复制引用,而不是引用类型本身。这意味着,源对象引用类型字段的值改变了,会影响到副本中对应的值也改变;2.深拷贝:将对象的字段复制到副本(新的对象)中,无论是值类型还是引用类型字段,都会复制类型本身及类型的值。这意味着,源对象引用类型字段的值改变了,不会影响到副本中对应的值。
那么实现了ICloneable接口的中的Clone是浅拷贝还是深拷贝呢?官方的解释是:你既可以在Clone方法中实现浅拷贝,也可以实现深拷贝。
- ICloneable接口的浅拷贝与深拷贝
- ICloneable 接口 深拷贝 浅拷贝
- 深拷贝、浅拷贝、ICloneable接口
- 深拷贝、浅拷贝、ICloneable接口
- c++中 拷贝构造函数的深拷贝和浅拷贝--“浅拷贝”与“深拷贝”
- 深拷贝与浅拷贝的实现
- 深拷贝与浅拷贝的区别
- c++的深拷贝与浅拷贝
- 深拷贝与浅拷贝的区别
- C++的深拷贝与浅拷贝
- 浅拷贝与深拷贝的区别
- C++的深拷贝与浅拷贝
- Python的浅拷贝与深拷贝
- 浅拷贝与深拷贝的区别
- C++的深拷贝与浅拷贝
- 深拷贝与浅拷贝的区别
- 深拷贝与浅拷贝的练习
- C++的深拷贝与浅拷贝
- 黑马程序员 结构和类的区别与联系
- Android系统进程Zygote启动过程的源代码分析
- Android4.0下的Calendar、events、reminder简单Demo
- Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析
- Android应用程序消息处理机制(Looper、Handler)分析
- ICloneable接口的浅拷贝与深拷贝
- Android应用程序键盘(Keyboard)消息处理机制分析
- Struts2中Session的使用
- Android应用程序线程消息循环模型分析
- 让程序在崩溃时体面的退出之SEH
- Android日志系统驱动程序Logger源代码分析
- 献给2012——易水寒的心声
- Android应用程序框架层和系统运行库层日志系统源代码分析
- JAVA数字处理类使用2