文章詳情頁
Effective java學習筆記10:改寫clone的時候要小心
瀏覽:3日期:2024-06-19 14:07:16
內容: 看了這章,覺得這幾句話重要: 一個專家級程序員,從來都不會去改寫clone方法,也從來不去調用它,除非是為了低開銷來拷貝一個數組。 一個為了繼承而設計的類,如果未能實現一個行為良好的protected的clone方法,它的子類要實現cloneable接口是不可能的。 真的要做,如何實現改寫clone方法呢? 所有實現了cloneable接口的類都應該用一個公有的方法改寫clone,這個方法要首先調用super.clone,如果所有的類都實現這么做,那么最終就會回溯到object的clone方法,不會得到clone得到不對的對象的情況。調用super.clone之后,把所有復雜對象設成初始狀態,原始類型數據可以直接復制。 通常情況下,此時還需要對內部的任何可變對象(比如堆棧,鏈表)進行深層結構的拷貝。不能簡單的復制。 比如,A實例有一個堆棧Stack,調用A的clone方法,如果僅僅是令B的Stack=A的stack,那么修改A的stack同時會影響到B中stack的情況。所以,我們必須進行深層拷貝,防止這個問題。 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標簽:
Java
相關文章:
1. Python測試框架:pytest學習筆記2. asp知識整理筆記4(問答模式)3. Java學習筆記:基本輸入、輸出數據操作實例分析4. vue學習筆記之動態組件和v-once指令簡單示例5. 《javascript設計模式》學習筆記三:Javascript面向對象程序設計單例模式原理與實現方法分析6. Java編程思想讀書筆記(第5-7章)7. Python學習筆記之裝飾器8. Effective java學習筆記4:避免創建重復對象9. 《javascript設計模式》學習筆記二:Javascript面向對象程序設計繼承用法分析10. vue學習筆記之Vue中css動畫原理簡單示例
排行榜