【Java】《Java編程思想》筆記-第五章 初始化與清理

5.1 用構造器確保初始化【initialize()
  • 構造器採用與類相同的名字
  • 在Java中,初始化和創建捆綁在一起,不能分離
5.2 方法重載
  • 爲了讓方法名相同而形式參數不同的構造器同時存在,必須用到方法重載
  1. 區分重載方法:每個重載的方法都必須有一個獨一無二的參數類型列表
  2. 涉及基本類型的重載:方法接受較小的基本類型作爲參數。如果傳入的實際參數較大,就得通過類型轉換來執行窄化轉換。如果不這樣做,編譯器就會報錯。
  3. 以返回值區分重載方法:❌
5.3 默認構造器
  • 又稱“無參”構造器
5.4 this關鍵字
  • 只能在方法內部使用,表示對“調用方法的那個對象”的引用。注意的是,如果在方法內部調用同一個類的另一個方法,就不必使用this,直接調用即可。當前方法中的this引用會自動應用於同一類的其他方法。只有當需要明確指出對當前對象的引用時,才需要使用this關鍵字。
  1. 在構造器中調用構造器:爲一個類謝了多個構造器,有時可能想在一個構造器中調用另一個構造器,以避免重複代碼。通常寫this的時候都是指“這個對象”或者“當前對象”,而且它本身表示對當前對象的引用。如果爲this添加了參數列表,將產生對符合此參數列表的某個構造器的明確調用。編譯器禁止在出構造器之外其他任何方法中調用構造器。
  2. static的含義:static方法就是沒有this的方法。
5.5 清理:總結處理和垃圾回收
  • finalize():一旦垃圾回收器準備好釋放對象佔用的存儲空間,將首先調用其finalize()方法,就能在下一次垃圾回收動作發生時,纔會真正回收對象佔用的內存。
  • c++中,對象一定會被銷燬
  • Java中,①對象可能不被垃圾回收;②垃圾回收並不等於“析構”
  1. finalize()用途:③垃圾回收只與內存有關;也就是說使用垃圾回收器的唯一原因是了回收程序不再使用的內存。finalize()需求限制到一種特殊情況,即通過某種創建對象方式以外的方式爲對象分配了存儲空間。→使用了“本地方法”:本地方法是一種在Java中調用了非Java代碼的方式。
  2. 必須實施清理:要清理一個對象,用戶必須在需要清理的時刻調用執行清理動作的方法。
  3. 終結條件
  4. 垃圾回收器如何工作:對任何”活“的對象,一定能最終追溯到其存活在堆棧和靜態存儲區之中的引用。
5.6 成員初始化
  •  對於方法的局部變量,強制程序員提供一個初始值
  • 對於類的數據成員是基本類型的話,保證都會有一個初始值
  1. 指定初始化
5.7 構造器初始化
  • 可以用構造器來進行初始化。無法阻止自動初始化的進行,它將在構造器被調用之前發生。對於所有基本類型和對象引用,包括在定義時已經制定初值的變量,均成立。
  1. 初始化順序:變量定義的先後順序決定了初始化的順序
  2.  靜態數據的初始化:無論創建多少個對象,靜態數據都只佔用一份存儲區域。static關鍵字不能應用於局部變量,因此它職能作用於域。靜態初始化只有在必要時刻纔會進行。(未完)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章