java深拷贝java深拷贝浅拷贝区别

2024-04-24 04:44:32 浏览

实现深拷贝,有三种方式:

java深拷贝java深拷贝浅拷贝区别

手动赋值,效率高,但代码过于啰嗦。

序列化与反序列化,使用SerializationUtils的clone(Object obj)方法,要求拷贝的对象实现了Serializable,Map不行,使用HashMap即可。

用fastjson从Object转成json,然后转回object,本质上是反射。

作用:保证类只有一个实例。

作用:代替构造函数创建对象,方法名比构造函数清晰

作用:创建某一种类的对象。

原型模式的本质是拷贝原型来创建新的对象,拷贝是比new更快的创建对象的方法,当需要批量创建新对象而且都是同一个类的对象的时候考虑使用原型模式。

一般的克隆只是浅拷贝(对象的hash值不一样,但是对象里面的成员变量的hash值是一样的)。

有些场景需要深拷贝,这时我们就要重写clone方法,以ArrayList为例:

作用:使不兼容的接口相容。

作用:为类添加新的功能,防止类继承带来的类爆炸。

作用:封装一组交互类,一直对外提供接口。

作用:共享对象、节省内存。

(1)透明调用被代理对象,无须知道复杂实现细节

(2)增加被代理类的功能;

作用:将集合的迭代和集合本身分离。

作用:封装操作,使接口一致。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。