為靜態變數開闢空間(預設初始化),然後顯示初始化
靜態**塊
靜態方法
new語句明確首位址,在堆記憶體中為物件開闢相應大小的空間(預設初始化),此時有了this這一概念
成員變數的顯示初始化。
構造**塊
建構函式
public
class main
}class demo
static
/*堆->方法區->靜態方法區*/
demo() /*堆->方法區*/
void funtion1() /*堆->方法區*/
static
void funtion2() /*堆->方法區->靜態方法區*/
}
/* 1 */
靜態**塊 15 20/* 2 */構造**塊 5 10 15 20
預設建構函式 5 10 15 20
靜態**塊 15 20/* 3 */靜態方法 15 20
靜態**塊 15 20/* 4 */構造**塊 5 10 15 20
預設建構函式 5 10 15 20
普通成員方法 5 10 15 20
靜態**塊 15 20/* 5 */構造**塊 5 10 15 20
預設建構函式 5 10 15 20
5
靜態**塊 15 20/* 6 */構造**塊 5 10 15 20
預設建構函式 5 10 15 20
10
靜態**塊 15 20/* 7 */ 額外:final關鍵字修飾乙個變數時,是引用不能變,還是引用的物件不能變?15
答:父類載入,為父類的靜態變數開闢空間(預設初始化),然後顯示初始化
父類的靜態**塊
父類的靜態方法
子類的靜態變數開闢空間(預設初始化),然後顯示初始化
子類的靜態**塊
子類的靜態方法
父類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/* 2 */子類的 靜態**塊 15 20
父類的 構造**塊 -5 -10 -15 -20
父類的 預設建構函式 -5 -10 -15 -20
子類的 構造**塊 5 10 15 20
子類的 預設建構函式 5 10 15 20
父類的 靜態**塊 -15 -20/* 3 */子類的 靜態**塊 15 20
子類的 靜態方法 15 20
父類的 靜態**塊 -15 -20/* 4 */子類的 靜態**塊 15 20
父類的 構造**塊 -5 -10 -15 -20
父類的 預設建構函式 -5 -10 -15 -20
子類的 構造**塊 5 10 15 20
子類的 預設建構函式 5 10 15 20
子類的 普通成員方法 5 10 15 20
父類的 靜態**塊 -15 -20/* 5 */子類的 靜態**塊 15 20
父類的 構造**塊 -5 -10 -15 -20
父類的 預設建構函式 -5 -10 -15 -20
子類的 構造**塊 5 10 15 20
子類的 預設建構函式 5 10 15 20
5
父類的 靜態**塊 -15 -20/* 6 */子類的 靜態**塊 15 20
父類的 構造**塊 -5 -10 -15 -20
父類的 預設建構函式 -5 -10 -15 -20
子類的 構造**塊 5 10 15 20
子類的 預設建構函式 5 10 15 20
10
父類的 靜態**塊 -15 -20/* 7 */ /* 8 */子類的 靜態**塊 15 20
15
父類的 靜態**塊 -15 -20/* 9 */子類的 靜態**塊 15 20
父類的 構造**塊 -5 -10 -15 -20
父類的 預設建構函式 -5 -10 -15 -20
子類的 構造**塊 5 10 15 20
子類的 預設建構函式 5 10 15 20
-10
父類的 靜態**塊 -15 -20/* 10 */-15
-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,載...