1、为什么要使用克隆?
想对一个对象进行处理,又想保留原有的数据进行接下来的操作,就需要进行克隆了,Java语言中的克隆针对的是类的实例。
2、如何实现对象克隆?
有两种方式:
- 实现Cloneable接口并重写Object类中的clone方法,Cloneable接口中没有任何的实现方法,它属于一个标识性接口。
- 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深克隆。
3、如何防止对象的克隆?
4、深拷贝和浅拷贝的区别?
- 深拷贝:是将对象和值全部复制过来,两个对象修改其中任意一个值,另一个值不会改变的。
- 浅拷贝:只是复制了对象的引用地址,两个对象指向一个地址,因而任何一个对象被修改了,另一个对象都会随之改变。