Java的深拷贝和浅拷贝的区别
- 区别:如果在拷贝这个对象的时候,只对基本数据类型进行了拷贝,而对引用类型数据只是进行了引用的传递,而没有真实的创建一个新的对象,则认为是浅拷贝。反之,在对引用类型数据进行拷贝的时候,创建了一个新的对象,并且复制其内的成员变量,则认为是深拷贝。
问:clone()方法,是对当前对象进行浅拷贝,引用类型依然是在传递引用,那么,如何进行一个深拷贝呢?
- 序列化这个对象,再反序列化回来,就可得到这个新的对象,无非就是序列化的规则需要自己来写。
- 继续利用clone()方法,既然clone()方法是我们来重写的,实际上可以对其内的引用类型的变量,在进行一次clone()。
文章来源于互联网:Java的深拷贝和浅拷贝的区别
THE END
二维码