1 作用
使用樣板對象復(fù)制出一個內(nèi)部屬性一致的對象;用于創(chuàng)建復(fù)雜或者耗時的實例;
2 使用場景
- 1類的初始化消耗非常多的資源;
- 2 new產(chǎn)生一個對象需要繁瑣的數(shù)據(jù)準(zhǔn)備或訪問權(quán)限颁糟;
- 3保護(hù)性拷貝榛瓮;
3 注意事項
- 1 構(gòu)造函數(shù)不會執(zhí)行
- 2 對引用型字段默認(rèn)是淺拷貝(復(fù)制一份引用)铺董,所以在返回對象時,還要另外調(diào)用引用對象的clone函數(shù)賦值之后才能返回,進(jìn)行深拷貝精续,以避免操作副本時影響原始對象的問題坝锰。
- 3 使用clone()函數(shù)構(gòu)造實例并不一定 比new操作速度快,所以只有在new構(gòu)造對象較為耗時或者成本較高時重付,才使用clone()函數(shù)來提升效率顷级。
- 4 String類型是一個特殊情況,雖然是引用類型确垫,但是不會出現(xiàn)相互影響的問題弓颈。
4 案例
Arrraylist的clone,android中intent的clone(傳入原始intent逐個賦值的方式)删掀。