java浅拷贝深拷贝

概要

浅拷贝、深拷贝都是从一个对象中new一个新的对象。区别体现在,被new的这个对象,它的变量如果是引用型的话,浅拷贝只是复制一个引用,而深拷贝是复制这个变量(重新开辟一个新的内存)。


image.png

实现方法

object存在一个clone()方法,它的调用拷贝一个对象时,如果全是基本类型,那么这次就是深拷贝。如果有的变量时引用变量的话,那么就是浅拷贝了,如何实现深拷贝呢。有以下两种方法:

  1. 把对象序列化,简单粗暴的直接toString,然后加一个方法能把string能还原成对象就ok。
  2. 通过继承Cloneable 接口,重写clone方法。比如对如果引用变量里的变量时基础类型的话,再次clone就ok

参考链接

细说 Java 的深拷贝和浅拷贝

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