java代碼塊相關問題

1.什麼是代碼塊
  使用{}括起來的代碼被稱爲代碼塊,根據其位置和聲明的不同可以分爲下面4種:
    1.局部代碼塊,在方法中出現,限定變量生命週期,及早釋放,提高內存利用率
    2.構造代碼塊,在類中方法外出現;定義在類的成員位置,直接使用{ },在{}中寫代碼內容。每次調用構造都執行,並且在構造方法前執行
    3.靜態代碼塊, 在類中方法外出現,並加上static修飾;用於給類進行初始化,在加載的時候就執行,並且只執行一次。一般用於加載驅動。

class Teacher {
    static {
        System.out.println("Teacher 靜態代碼塊");
    }

    {
        System.out.println("Teacher 構造代碼塊");
    }

    public Teacher() {
        System.out.println("Teacher 構造方法");
    }

    public void sayHello() {
        {
            System.out.println("這裏是普通代碼塊");
        }
    }
}

public class BlockTest {

    static {
        System.out.println("BlockTest靜態代碼塊");
    }

    public static void main(String[] args) {
        System.out.println("main方法");
        Teacher t1 = new Teacher();
        Teacher t2 = new Teacher();
        t1.sayHello();
        t2.sayHello();
    }
}

執行結果

BlockTest靜態代碼塊
main方法
Teacher 靜態代碼塊
Teacher 構造代碼塊
Teacher 構造方法
Teacher 構造代碼塊
Teacher 構造方法
這裏是普通代碼塊
這裏是普通代碼塊

結論:


(優先級從高到低)靜態代碼塊 > main方法 > 構造代碼塊 > 構造方法。
在主方法中定義的靜態代碼塊優先於主方法執行,在類中定義的靜態代碼塊優先於構造塊執行,
而且不管有多少個對象產生,靜態代碼塊只執行一次
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章