[Thinking_in_Java] 初始化與清理 —— initialize

 初始化與清理 —— initialize

 

1 構造器是一種特殊的類型,因爲它沒有返回值,而且在後面會知道,所有的構造函數可以把它理解爲特殊的靜態方法(the constructor is actually a static method.)。

  如果你是在類被加載的時候看待,那麼它是static的。因爲在JVM加載類時首先會初始化static屬性爲默認值,在這裏構造器會被調用。
  如果你是在創建對象的時候看待,那麼它不是static的,構造器在裏就如對象引用調用成員方法一樣。類名後的這個括號“()”就表示調用構造器。如果沒有定義構造器,編譯器會默認創建一個無參的構造器。

 

2 方法調用時,如果傳入的數據類型小於方法中聲明的形式參數類型,實際的數據類型會被提升。換句話說:字節數小的數據類型向最接近其字節數的類型轉換

boolen->char->byte->short->int->long->float->double

如果傳入的數據類型大於方法中聲明的形式參數類型,必須強制將字節數大的數據類型轉換成字節數小的數據類型。

 

3 重載只能以類名和方法的形參列表作爲區分標誌

根據方法的返回值來區分重載方法是灰常不靠譜的。

 

4 this

this和js一樣,表示是對當前對象的引用。this只能在方法內部使用。

 

5 static方法

static方法內部不能調用非靜態方法,但是非靜態方法可以調用static方法。

static和類相關,所以可以在沒有任何對象的前提下,僅僅通過類本身來調用static方法。

static方法是沒有this的方法。

 

6  輪不到你用finalize()

 

7 垃圾回收的機制

  引用計數

  標記-掃描  && 停止-複製

 

8 類的初始化順序

  靜態成員->普通成員->靜態方法->構造器

發佈了98 篇原創文章 · 獲贊 3 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章