java類執行順序

2021-07-22 03:57:17 字數 819 閱讀 2589

如果父類有靜態成員賦值或者靜態初始化塊,執行靜態成員賦值和靜態初始化塊

如果類有靜態成員賦值或者靜態初始化塊,執行靜態成員賦值和靜態初始化塊

將類的成員賦予初值(原始型別的成員的值為規定值,例如int型為0,float型為0.0f,boolean型為false;物件型別的初始值為null)

如果構造方法中存在this()呼叫(可以是其它帶引數的this()呼叫)則執行之,執行完畢後進入第7步繼續執行,如果沒有this呼叫則進行下一步。(這個有可能存在遞迴呼叫其它的構造方法)

執行顯式的super()呼叫(可以是其它帶引數的super()呼叫)或者隱式的super()呼叫(預設構造方法),此步驟又進入乙個父類的構造過程並一直上推至object物件的構造。

執行類申明中的成員賦值和初始化塊。

執行構造方法中的其它語句。

最終的簡化順序版本是:

父類的靜態成員賦值和靜態塊

子類的靜態成員和靜態塊

父類的構造方法

父類的成員賦值和初始化塊

父類的構造方法中的其它語句

子類的成員賦值和初始化塊

子類的構造方法中的其它語句

執行結果:

總結:程式執行時靜態初始化塊最先被執行,然後執行普通初始化塊,最後才執行構造方法。由於靜態初始化塊只在類載入時執行一次,所以當再次建立物件 hello2 時並未執行靜態初始化塊。

java類執行順序

先執行父類的靜態變數和靜態 塊,如果有初值為其賦值,沒有就賦值預設初始值 執行當前類的靜態變數和靜態 塊,如果有初值為其賦值,沒有就賦值預設初始值 執行當前類成員的預設賦值,int 0,boolean false等 執行當前類的構造方法,顯示或者掩式呼叫父類的構造方法,如果構造方法 塊中有this,...

java 類執行順序

package com.accdays.keyword 類中 的執行順序 1.載入時 static 塊會執行一次,且以後不會再執行 2.塊 例項化屬性字段 相同執行級別,按照 順序執行 3.建構函式 如果有父類,先按照上面順序執行父類的 執行順序 1.先父類再子類 2.先 static 塊 只執行一...

Java類載入執行順序

簡要記錄類的載入執行順序 先說結論 父類靜態 塊 變數 子類靜態 塊 變數 父類普通 變數 塊 父類構造器 子類普通 變數 塊 子類構造器 具體執行過程 程式先找到main函式,不管此時有沒有使用new進行建立物件,都會將涉及到的類 例如父類 進行類載入 發現son類有乙個父類father類 初始化...