[面试] Java 对象的克隆

来源:互联网 发布:美津浓跑鞋矩阵 编辑:程序博客网 时间:2024/06/07 00:15

今天面试,被问到什么deep cloned 和 sallow cloned。还问我当对象特别复杂时,怎么clone。现在想应该是使用序列化。

 

下面是引用http://www.javaeye.com/topic/659877

对一个对象进行复制有二种比较好的方式,一种就是序列化,另一种就是克隆。使用序列化进行复制很方便,因为此种方式会自动进行深层复制,只需要我们将要序列化的对象所对应的类实现序列化标示性接口Serializable,它就会将对象里所引用的其他对象一并复制,但此种效率不及Object里的clone克隆方法。不过使用clone进行克隆却是浅复制,它不会自动将对象里所引用的其他对象进行深层克隆,所以如果我们想要进行深层复制时,需要覆写Object中的clone方法,对需要进行深层复制的域进行单独处理,所以应用起来比较麻烦。

 

下面为序列化的一个例子: 

 

 

原创粉丝点击