代碼塊(初始化塊)的做用:對java對象進行初始化。java
程序的執行順序對象
一、聲明成員變量的默認值;變量
二、顯式初始化、多個初始化塊依次被執行(同級別下按前後順序執行);程序
三、構造方法再對成員進行賦值操做;方法
一個類中的初始化塊如有修飾符,則只能被static修飾,稱爲靜態代碼塊(static block),當類被載入時,類屬性的聲明和靜態代碼塊按前後順序執行,且只執行一次。static
非靜態代碼塊:block
能夠有輸出語句;
能夠對類的屬性聲明進行初始化操做;
能夠調用靜態和非靜態的變量或方法;
如有多個非靜態的代碼塊,那麼按照從上到下的順序一次執行;
每次建立對象的時候,都會執行一次;
靜態代碼塊:
能夠有輸出語句;
能夠對類的屬性聲明進行初始化操做;
不能夠對非靜態的屬性初始化;
靜態代碼塊的執行要先於非靜態代碼塊;
靜態代碼塊只執行一次;
在匿名內部類中,用代碼塊代替構造方法。