java編程思想5-初始化與清理

1.構造器

a. 構造器確保操作對象之前從初始化

2.方法重載

a. 允許方法名相同二形參不同的方法存在,參數順序不同也視爲不同的方法
b. 涉及基本類型的重載:如果傳入數據類型小於方法聲明的形參類型,實際數據類型就會提升;如果傳入數據類型大於方法的形參類型,就需要類型轉換來執行窄化轉換,不這樣做編譯會報錯

3. this關鍵字

a. this關鍵字只能在方法內部使用,表示對“調用方法的那個對象的引用”,this指這個對象或當前對象,本身表示對當前對象的引用
b. 由於參數名稱和數據成員名稱相同,this.xx可以代表數據成員

static含義

a. static方法就是沒有this的方法,在static方法內部不能調用非靜態方法,static方法不是通過“向對象發送消息”的方式來完成的

垃圾回收

a. 引用計數:每個對象含有一個引用計數器,引用連接對象時,引用加1。如果對象間存在循環引用可能會出現,對象應該被回收,但引用計數不爲0。
b. 如果從堆棧和靜態存儲區開始,遍歷所有引用,就能找到所有 活的對象,然後是此對象包含的 所有引用,這樣可以解決引用計數的缺陷。停止-複製計數,先暫停程序運行,然後將所有存活的對象從當前堆複製到另一個堆,新堆裏面空間排列是緊湊的,舊堆裏面剩下的都是垃圾。這種效率低,首先需要兩個堆,然後有時候只會產生少量垃圾,然而這個 回收器 還是會進行復制,造成浪費。
c. 標記-清掃,從堆棧和靜態存儲區出發,遍歷所有引用,找出所有存活對象 ,給對象標記,不會回收,標記完成後,進行清理工作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章