什麼時候類載入

2022-08-23 00:21:11 字數 511 閱讀 6702

什麼時候類載入 。第一次需要使用類資訊時載入。 

類載入的原則:延遲載入,能不載入就不載入。

觸發類載入的幾種情況: 

(1)、呼叫靜態成員時,會載入靜態成員真正所在的類及其父類。

通過子類呼叫父類的靜態成員時,只會載入父類而不會載入子類

(2)、第一次 new 物件的時候 載入(第二次再 new 同乙個類時,不需再載入)。

(3)、載入子類會先載入父類。(覆蓋父類方法時所丟擲的異常不能超過父類定義的範圍) 

如果靜態屬性有 final 修飾時,則不會載入,當成常量使用

例:public static final int a =123; 

但是如果上面的等式右值改成表示式(且該表示式在編譯時不能確定其值)時則會載入類。 

例:public static final int a = math.pi 

如果訪問的是類的公開靜態常量,那麼如果編譯器在編譯的時候能確定這個常量的值,就不會被載入;

如果編譯時不能確定其值的話,則執行時載入

類什麼時候被載入

建立物件例項時 new 建立子類物件例項,父類也會被載入 使用類的靜態成員時 靜態屬性 靜態方法 例項如下 package com.example.codeblock author gaoqinghui date 2022 4 26 21 50 public class codeblockdetai...

什麼時候用介面,什麼時候用抽象類

很多人都認為抽象類和介面都 差不多 於是就隨便選一種來開發專案。其實這是一種非常不明智的做法,若選擇上稍微有些錯誤,到了專案開發後期,這些錯誤將會越來越明顯,越來越大,最後直接導致專案的失敗。在介面和抽象類的選擇上,必須遵守這樣乙個原則 行為模型應該總是通過介面而不是抽象類定義。為了說明其原因,下面...

什麼時候使用抽象類, 什麼時候使用介面

介面是一種協定,抽象類則相當於類模板。使用抽象類,而不要使用介面來分離協定與實現。如果需要提供多型層次結構的值型別,使用介面。如果乙個型別必須實現多個協定,或者協定適用於多種型別,使用介面。雖然抽象類和介面都支援將協定與實現分離開來,但介面不能指定以後版本中的新成員,而抽象類可以根據需要新增成員以支...