在類內(nèi)部,對(duì)于成員變量,如果在定義的時(shí)候沒有顯式的給出初始化,則java類會(huì)保證每個(gè)成員變量都會(huì)被初始化:

image.png
構(gòu)造器:如果沒有顯示的定義構(gòu)造器,則編譯器會(huì)自動(dòng)創(chuàng)建一個(gè)無參構(gòu)造器。如果顯示的定義了構(gòu)造器,編譯器就不會(huì)自動(dòng)添加構(gòu)造器。所有的構(gòu)造器默認(rèn)是static的??!
初始化順序:當(dāng)程序執(zhí)行時(shí),需要生成某個(gè)類的對(duì)象,java引擎會(huì)先檢查是否加載了這個(gè)類,如果沒有加載這個(gè)類,則先加載這個(gè)類再生成對(duì)象,如果已經(jīng)加載了這個(gè)類,則直接生成對(duì)象。在類的加載過程中,static成員變量會(huì)被初始化,如果還有static語句塊,那么static 語句看也會(huì)被執(zhí)行。static成員變量與程序塊的執(zhí)行順序與其代碼中的順序一致?!霸贘ava中,類是按需加載,只有當(dāng)需要用到這個(gè)類的時(shí)候,才會(huì)加載這個(gè)類,并且只會(huì)加載一次”