1. 为什么要使用克隆? 克隆的对象可能已经包含了一些已经修改过的属性,而new出来的对象还都是初始化时候的值。所以当需要一个新的对象来保存当前对象的“状态”就只能使用克隆了 2. 如何实现对象克隆? 实现Cloneable接口并重写Object类中的clone()方法 实现Serializable接口,通过对象的序列化和反序列化实现克隆。可以实现真正的深度克隆 3. 深拷贝和浅拷贝区别是什么? 浅克隆:当对象被复制时只复制它本身和它包含的值类型的成员变量,而引用对象的成员变量并没有复制 深克隆:除了对象本身被复制外,对象所包含的所有成员变量也将复制