Java類的載入

2021-07-27 22:35:41 字數 3227 閱讀 4025

為靜態變數開闢空間(預設初始化),然後顯示初始化

靜態**塊

靜態方法

new語句明確首位址,在堆記憶體中為物件開闢相應大小的空間(預設初始化),此時有了this這一概念

成員變數的顯示初始化。

構造**塊

建構函式

public

class main

}class demo

static

/*堆->方法區->靜態方法區*/

demo() /*堆->方法區*/

void funtion1() /*堆->方法區*/

static

void funtion2() /*堆->方法區->靜態方法區*/

}

/* 1 */

靜態**塊 15 20

構造**塊 5 10 15 20

預設建構函式 5 10 15 20

/* 2 */

靜態**塊 15 20

靜態方法 15 20

/* 3 */

靜態**塊 15 20

構造**塊 5 10 15 20

預設建構函式 5 10 15 20

普通成員方法 5 10 15 20

/* 4 */

靜態**塊 15 20

構造**塊 5 10 15 20

預設建構函式 5 10 15 20

5

/* 5 */

靜態**塊 15 20

構造**塊 5 10 15 20

預設建構函式 5 10 15 20

10

/* 6 */

靜態**塊 15 20

15

/* 7 */

額外:final關鍵字修飾乙個變數時,是引用不能變,還是引用的物件不能變?

答:父類載入,為父類的靜態變數開闢空間(預設初始化),然後顯示初始化

父類的靜態**塊

父類的靜態方法

子類的靜態變數開闢空間(預設初始化),然後顯示初始化

子類的靜態**塊

子類的靜態方法

父類super這一概念

父類成員變數的顯示初始化。

父類的構造**塊

父類的建構函式

子類new語句明確首位址,在堆記憶體中為物件開闢相應大小的空間(預設初始化),此時有了this這一概念

子類成員變數的顯示初始化。

子類構造**塊

子類建構函式

public

class

main

}class

demo

extends

father

static

demo()

void funtion1()

static

void funtion2()

}class

father

static

father()

void funtion1()

static

void funtion2()

}

/* 1 */

父類的 靜態**塊 -15 -20

子類的 靜態**塊 15 20

父類的 構造**塊 -5 -10 -15 -20

父類的 預設建構函式 -5 -10 -15 -20

子類的 構造**塊 5 10 15 20

子類的 預設建構函式 5 10 15 20

/* 2 */

父類的 靜態**塊 -15 -20

子類的 靜態**塊 15 20

子類的 靜態方法 15 20

/* 3 */

父類的 靜態**塊 -15 -20

子類的 靜態**塊 15 20

父類的 構造**塊 -5 -10 -15 -20

父類的 預設建構函式 -5 -10 -15 -20

子類的 構造**塊 5 10 15 20

子類的 預設建構函式 5 10 15 20

子類的 普通成員方法 5 10 15 20

/* 4 */

父類的 靜態**塊 -15 -20

子類的 靜態**塊 15 20

父類的 構造**塊 -5 -10 -15 -20

父類的 預設建構函式 -5 -10 -15 -20

子類的 構造**塊 5 10 15 20

子類的 預設建構函式 5 10 15 20

5

/* 5 */

父類的 靜態**塊 -15 -20

子類的 靜態**塊 15 20

父類的 構造**塊 -5 -10 -15 -20

父類的 預設建構函式 -5 -10 -15 -20

子類的 構造**塊 5 10 15 20

子類的 預設建構函式 5 10 15 20

10

/* 6 */

父類的 靜態**塊 -15 -20

子類的 靜態**塊 15 20

15

/* 7 */

/* 8 */

父類的 靜態**塊 -15 -20

子類的 靜態**塊 15 20

父類的 構造**塊 -5 -10 -15 -20

父類的 預設建構函式 -5 -10 -15 -20

子類的 構造**塊 5 10 15 20

子類的 預設建構函式 5 10 15 20

-10

/* 9 */

父類的 靜態**塊 -15 -20

-15

/* 10 */

-20

java的類載入機制

class testclassacatch exception e class c urlcl.loadclass testclassa testclassa object testclassa c.newinstance object.method catch exception e e.prin...

Java類載入的順序

1.載入靜態成員 塊 先遞迴地載入父類的靜態成員 塊 object的最先 再依次載入到本類的靜態成員。同乙個類裡的靜態成員 塊,按寫 的順序載入。如果其間呼叫靜態方法,則呼叫時會先執行靜態方法,再繼續載入。同乙個類裡呼叫靜態方法時,可以不理會寫 的順序。呼叫父類的靜態成員,可以像呼叫自己的一樣 但呼...

Java類的載入順序

單個類載入時,會按照靜態 塊,塊,建構函式的順序進行載入。例如 public class main public class shape public shape 執行結果如下 shape靜態初始化塊已執行!shape初始化塊已執行!shape建構函式已執行!當子類circle繼承父類shape,載...