寫到這個地方,是不是能看出點眉目了,呵呵,上邊代碼是不是會拋出:java.lang.NullPointerException異常,為什么呢,很簡單,我們知道
類的加載過程是什么: 裝載----驗證 ---準備---解析---初始化。初始化之前,類加載器會把所有變量都默認為對應類型的默認值。復合類型變量是不是為null,而在初始的時候,上邊的第一條語句就new了本身,在進入構造器函數的時候,是不是就產生了錯誤。 第二種創建方式的優缺點: 優點:避免了第一種方式可能產生的錯誤。 缺點:不利于用在多線程上,因為他使用了鎖,這樣在資源上有很大浪費。 后來有人提出了雙檢查單例模式,參考資料在:http://www.ibm.com/developerworks/java/library/j-dcl.html?dwzone=java 第三種創建方式的優缺點:(Bob lee創建的) 優點: 綜合了上訴兩種方法的優點,故,我比較推薦使用這種方式;
posted on 2007-12-21 15:03 sam.chuan.yang 閱讀(1756) 評論(2) 編輯 收藏 所屬分類: 23設計模式的理解