java中的拷贝

实际开发中可能会需要在一个对象的基础上拷贝一份相同的对象,与原始对象没有关联。这就需要了解下面的java浅拷贝和深拷贝。

一,浅拷贝

在原有的对象上面创建一个新对象,就是开辟新的空间然后将属性值拷贝过去,这里的属性分为两种情况:第一是基本类型的属性,就是直接将值拷贝过去。第二引用类型的属性,就是将内存地址(引用)进行拷贝,如果原有对象的引用类型的属性值改变了,引用值也会改变。

二,深拷贝

在原有的对象上面创建一个新对象,同时引用类型的属性也会进行内存地址(引用)的拷贝。

三,实现方式

对象实现Cloneable接口,实现clone方法,调用super.clone()的工作就是创建新的对象,分配内存地址,然后赋值给一个新的变量,实现了一次浅拷贝。深拷贝就要使用属性的clone方法。



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 307、setValue:forKey和setObject:forKey的区别是什么? 答:1, setObjec...
    AlanGe阅读 1,604评论 0 1
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,222评论 30 472
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,386评论 11 349
  • 也许你的心并不平静,即使是努力让自己好好看一本许久未翻的书,看当前摆在眼前安静的绿植,内心还是不能发出舒缓的声音吧...
    幺幺读书阅读 301评论 1 1
  • 冰千里阅读 1,009评论 9 15