自由塊:{ }
(1)可以多次執行。在構造函數之前執行;
(2)每次初始化一個對象,都會導致一次非靜態塊的執行,如果涉及到繼承關係,則是:首先執行父類的非靜態塊,然後是父類的構造函數,接着是自己的自由塊,最 後是自己的構造函數;
靜態塊:static{ }
(1)只執行一次,在class文件加載時執行(class文件只會裝載一次,so靜態塊,只會執行一次),一般用來初始化類的靜態變量的值;
(2)一個類中有多個靜態塊,則按照編碼的順序執行。
自由塊:{ }
(1)可以多次執行。在構造函數之前執行;
(2)每次初始化一個對象,都會導致一次非靜態塊的執行,如果涉及到繼承關係,則是:首先執行父類的非靜態塊,然後是父類的構造函數,接着是自己的自由塊,最 後是自己的構造函數;
靜態塊:static{ }
(1)只執行一次,在class文件加載時執行(class文件只會裝載一次,so靜態塊,只會執行一次),一般用來初始化類的靜態變量的值;
(2)一個類中有多個靜態塊,則按照編碼的順序執行。