第五部分 克隆对象

85 阅读1分钟

61 为什么要使用克隆

想要对一个对象进行处理,又在接下来的操作需要保留原有的数据,这个时候就需要克隆了。Java的克隆针对的是对象的实例。

62 如何实现克隆

  1. 实现Cloneable接口并重写Object对象的clone方法

  2. 实现Serializable接口,通过对象的序列化和反序列化实现克隆,这种方法能实现真正的克隆

基于序列化和反序列化的克隆不仅仅是深拷贝克隆,更重要的是通过泛型限定,能够判断要克隆的对象是否支持序列化操作,这个工作是在编译时完成的

深拷贝和浅拷贝的区别是什么

  • 浅拷贝只是复制了对象的引用地址,两个对象指向同一内存地址,其中一个修改了成员的值,另一个对象的值也会被修改

  • 深拷贝是将对象的值复制过来,两个对象是完全独立的,修改其中一个的值,另一个不会改变