天天看点

JAVA系列: Clone浅拷贝、深拷贝

目录

浅复制

深复制

深拷贝工具类SerializationUtils.clone

  浅层复制: 被复制的对象的所有成员属性都有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。

换言之,浅层复制仅仅复制所考虑的对象(对象属性、数据),而不复制它所引用的对象(对象地址)。

  深层复制:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不是原有的那些被引用的对象。

换言之,深层复制要复制的对象引用的对象(对象属性、数据)都复制一遍。

JAVA系列: Clone浅拷贝、深拷贝

深拷贝实现起来也比较简单,只需要对对象中的对象再次进行clone操作:

commons-lang-2.6.jar 例如:Object obj = SerializationUtils.clone( objectFrom )