1、定義:
1、 Java中靜態變量只能在類主體中定義,不能在方法中定義。 靜態變量屬於類所有而不屬於方法。
2、 靜態塊:用static申明,JVM加載類時執行,僅執行一次
構造塊:類中直接用{}定義,
每一次創建對象時執行
執行順序優先級:
靜態塊>main()>構造塊>構造方法
3、類的加載順序
(1) 父類靜態對象和靜態代碼塊
(2) 子類靜態對象和靜態代碼塊
(3) 父類非靜態對象和非靜態代碼塊
(4) 父類構造函數
(5) 子類 非靜態對象和非靜態代碼塊
(6) 子類構造函數
2、實例
public class Test { static int age1 = 1; static{ age1 = 10; System.out.println("這是靜態代碼塊"); } { System.out.println("這是普通代碼塊"+age1); } public Test(){ System.out.println("這是構造方法"); } public void fun(){ System.out.println("這是普通方法fun"); } public static void show(){ System.out.println("這是靜態方法"+age1); } public static void main(String[] args) { System.err.println("=============="); Test.show(); Test t=new Test(); t.fun(); t.fun(); } }
3、資料來源:
Java中Static執行順序:https://blog.csdn.net/u010859650/article/details/81587738
java中靜態代碼執行順序: https://www.cnblogs.com/sjxbg/p/8831346.html
Java static執行順序:https://blog.csdn.net/ewzjs/article/details/78150198