- 两者区别主要在于引用数据类型的属性,对于基本数据类型采用的是值传递,所以两者一样;
- 对于浅拷贝,引用数据类型只会进行引用传递,即复制一份引用值(内存地址)给新对象,一个对象的变化会影响到另一个的引用属性对象,两者同时变化,如:数组,对象等;
- 对于深拷贝,会给引用数据类型开辟新的内存空间,并且是逐级复制开辟父级的内存空间,以及父级的父级等等,直到该属性对象可达的所有对象;
浅拷贝的实现方式:
- 构造方法传值;
- 重写clone()方法,方法体中调用super.clone()即可采用Object中的原clone方法;
深拷贝的实现方式:
- 重写clone()方法,不同的是需要对每个对象进行深层复制,并开辟内存空间;
原文地址:https://www.cnblogs.com/bearhoney/p/10500556.html
时间: 2024-10-15 22:20:02