前言:
当我们得到一个拷贝某个对象副本的需求时,如果使用“ =” 赋值操作进行的话,其本质并未创建一份副本,而是让两个引用变量指向同一个对象,如果将目标对象原原本本再重新创建一次,会大大增加我们的工作量,所以在Java的Object类中,提供了一个clone方法,用以解决我们拷贝副本的需求。该拷贝分两种:
一、浅拷贝
1.浅拷贝是什么
浅拷贝,指的是拷贝时只拷贝当前的这个对象,相当于只完成了第一层拷贝,若该对象有子类,引用,则不会拷贝子对象。副本的引用指向的值会随着原对象该引用的值的变化而变化。
2.浅拷贝的实现
浅拷贝通过Object类里的clone()方法来实现
protected Object clone() throws CloneNotSupportedException { return super.clone(); }
其内存图大致如下,父类对象创建了一个副本,可子类还是指向同一个
同时要注意:
如果一个类要实现clone方法,必须要实现一个接口(Clo