第七章.複用類 初始化和類的加載 總結

1.java的類加載過程

  • 每個類編譯代碼都存在於一個獨立的文件中,該文件只在需要使用該程序代碼的時候纔會被加載。
  • 一般來說“類的代碼在初次使用時才加載”,通常是指加載發生於創建類的第一個對象時,當訪問static域或static方法時,該代碼文件也會被加載。
  • 加載過程:類加載器開始啓動並找出子類中的編譯代碼,在.class文件中,加載過程中發現他有一個父類,由extends關鍵字得知,於是進行加載,

    如果該基類還有基類(父類)那麼第二個基類就會被加載,以此類推,知道根基類被加載,然後,根基類的static初始化會被執行,然後下一個子類,
    依次類推。這種方式很重要,因爲子類的static初始化可能依賴於父類。至此,必要類的加載完畢,對象就可以被創建了。

    首先,對象中的所有基本類型被設爲默認值,對象引用被設爲null——這是通過將對象內存設置爲二進制零值而一舉生成的。然後基類的構造器被調用。

    不是默認的可以使用super調用。在基類構造器完成之後,實例變量按其次序被初始化。最後,構造器的其餘部分執行。

總結:

  1. 組合和繼承都能從現有類中生成新類型。組合是將現有類型作爲新類型底層實現的一部分加以複用,而繼承複用的是接口(即父類方法)
  2. 多使用組合和代理,慎用繼承。
  3. 低耦合,高內聚。
  4. 程序開發是一種增量過程,將項目當做一種有機的、進化的生命體而去培養,組合和繼承正是在面向對象程序設計中使得你可以執行這種實驗的最基本的兩個工具
發佈了26 篇原創文章 · 獲贊 14 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章