1. 程式人生 > >程式碼塊 靜態程式碼塊 區域性程式碼塊 構造程式碼塊

程式碼塊 靜態程式碼塊 區域性程式碼塊 構造程式碼塊

程式碼塊

在這裡插入圖片描述

程式碼演示

public class Teacher {
    public Teacher(){                                   //
        System.out.println("我是Teacher建構函式");      //建構函式
    }                                                //     
    {                                                 //
        System.out.println("我是Teacher構造程式碼塊");   //構造程式碼塊
    }                                               //
    static{                                             //
        System.out.println("我是Teacher靜態程式碼塊");     //靜態程式碼塊
    }                                                 //
    public static void main(String[] args) {
        {                                              //
            System.out.println("我是Teacher區域性程式碼塊");//區域性程式碼塊
        }                                            //
        Teacher t = new Teacher();
        System.out.println("----------------");
        Teacher tt = new Teacher();
    }

結果

我是Teacher靜態程式碼塊
我是Teacher區域性程式碼塊
我是Teacher構造程式碼塊
我是Teacher建構函式
----------------
我是Teacher構造程式碼塊
我是Teacher建構函式

  注:靜態程式碼塊都是先執行的,並且只執行一次,因為它是隨著類的載入而載入的,執行程式時只加載一次類,因此它只執行一次;區域性程式碼塊也執行一次,因為它用完會自動釋放記憶體,因此不會再執行第二次,如果它出現在new的物件前它會比構造程式碼塊先執行,反之則執行在構造方法後;構造程式碼塊比構造方法先執行