java基礎---代碼塊的執行順序


一、代碼塊:

靜態代碼塊:static修飾的代碼塊,作用:用來對類進行初始化,一般用來加載驅動

非靜態代碼塊,也叫構造代碼塊:無static修飾的代碼塊

局部代碼塊:定義在方法體內的代碼塊

二、執行順序:

  1、靜態代碼塊與構造代碼塊的執行順序:

  先執行靜態代碼塊,且在類加載時執行,並且只執行一次,若有多個靜態代碼塊,則會按照靜態代碼塊在代碼中的順序來執行靜態代碼塊。

  再執行普通(構造代碼塊)代碼塊,先於構造方法執行,可以執行多次,構造方法執行幾次,構造代碼塊就執行幾次

  (優先級從高到低)靜態代碼塊 > main方法 > 構造代碼塊 > 構造方法。

  靜態成員變量(類變量),靜態代碼塊,實例變量,構造代碼塊,構造器:

  1). 在類的加載過程中,類的static成員變量會被初始化,另外,如果類中有static語句塊,則會執行static語句塊。static成員變量和static語句塊的執行順序同代碼中的順序一致。記住,在Java中,類是按需加載,只有當需要用到這個類的時候,才會加載這個類,並且只會加載一次。

  2). 在生成對象的過程中,會先初始化對象的成員變量,然后再執行構造器。也就是說類中的變量會在任何方法(包括構造器)調用之前得到初始化,即使變量散步於方法定義之間。【https://www.cnblogs.com/dolphin0520/p/3803432.html】

  2、 有繼承情況下的代碼塊執行順序:

 

三、類加載的時機:

reference:

https://blog.csdn.net/justloveyou_/article/details/72466105


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM