1 作用
使用样板对象复制出一个内部属性一致的对象;用于创建复杂或者耗时的实例;
2 使用场景
- 1类的初始化消耗非常多的资源;
- 2 new产生一个对象需要繁琐的数据准备或访问权限;
- 3保护性拷贝;
3 注意事项
- 1 构造函数不会执行
- 2 对引用型字段默认是浅拷贝(复制一份引用),所以在返回对象时,还要另外调用引用对象的clone函数赋值之后才能返回,进行深拷贝,以避免操作副本时影响原始对象的问题。
- 3 使用clone()函数构造实例并不一定 比new操作速度快,所以只有在new构造对象较为耗时或者成本较高时,才使用clone()函数来提升效率。
- 4 String类型是一个特殊情况,虽然是引用类型,但是不会出现相互影响的问题。
4 案例
Arrraylist的clone,android中intent的clone(传入原始intent逐个赋值的方式)。