Java加載順序

public class Ho{
    public static String str="靜態成員變量";
    public static String getStr(){
        System.out.println("靜態方法");
        return  "返回的靜態方法";
    }

    {
        System.out.println("非靜態初始化塊");
    }
    static
    {
        System.out.println("靜態初始化塊");
        //str=getStr();
    }
    public Ho()
    {
        System.out.println("構造方法");
    }
    public static void main(String args[]){
        //Ho a=new Ho();
        //System.out.println(Ho.str);
    }
}

這裏寫圖片描述

創建對象實例後
這裏寫圖片描述

java在首次裝入類時,會對靜態成員變量和靜態方法進行一次初始化,但方法不被調用則不會執行;
由此可知,java在加載類時順序
初始化靜態塊–>(實例化對象)–>
初始化非靜態塊–>構造函數

若爲子父類繼承關係且當主函數在子類當中
初始化父類靜態塊–>初始化子類靜態塊–>(實例化對象)–>
初始化父類非靜態塊–>父類構造方法–>
初始化子類非靜態塊–>子類構造函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章