1. 程式人生 > >java靜態代碼塊執行順序學習筆記

java靜態代碼塊執行順序學習筆記

就會 pri 執行順序 mark sha 圖片 alt watermark his

先加載類靜態代碼塊--再加載主方法中函數,
如果有調用其他類,先加載其他類的靜態代碼塊,在加載其他方法,與屬性

技術分享圖片

 @Test
    public void ss() {
   {
      int x = 10;                        //限定變量的聲明周期
      System.out.println(x);
   }

        Student1 s1 = new Student1();
        System.out.println("---------------");
        Student1 s2 = new Student1("張三", 23);

    }

    static {
        System.out.println("我是在主方法類中的靜態代碼塊");
    }

}

class Student1 {
    private String name;
    private int age;

    public Student1(){
        //study();
        System.out.println("空參構造");
    }                   //空參構造

    public Student1(String name,int age) {//有參構造
        //study();
        this.name = name;
        this.age = age;
        System.out.println("有參構造");
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    {                                           //構造代碼塊:每創建一次對象就會執行一次,優先於構造函數執行
        //System.out.println("構造代碼塊");
        study();
    }

    public void study() {
        System.out.println("學生學習");
    }

    static {                                    //隨著類加載而加載,且只執行一次
        System.out.println("我是靜態代碼塊");  //作用:用來給類進行初始化,一般用來加載驅動
    }                                           //靜態代碼塊是優先於主方法執行
}

java靜態代碼塊執行順序學習筆記