在你類載入的時候就執行了。
在你類載入的時候就開始宣告或者定義了,並且存在於整個程式中,你可以再任何時刻對該值進行修改。
直接類名點靜態方法就可以使用。
在你定義類物件的時候,不是宣告,是定義,也就是 a a=new a();而不是a a;
方法很多人疑惑主方法也有static修飾,那麼它在什麼時候執行呢。其實他就在你執行該類主方法的時候才執行,就是在編譯器點run。其他時候都不執行!
三者的執行順序是。static靜態塊先執行,隨後才執行構造方法!執行主方法的話,也是先執行static**塊,再執行主方法。如下**!
public class statictest
}class a
static public static void
main(string args) static } 如果你執行測試方法 statictest();方法,定義乙個類a物件,會先執行兩個靜態塊,再執行建構函式a(),所以結果為 ab
c如你執行主方法a類中的main(),會先執行a類的靜態塊,再執行main(),結果如下ab
main
假如,你宣告了乙個物件,而沒有定義,也就是沒有初始化:例如
a a; 你宣告了乙個類物件a,但是沒有初始化,所以不會去載入類a,也就不會執行類a的靜態塊和構造方法!
靜態塊和靜態變數從頭到尾只初始化一次,而靜態方法你呼叫幾次用幾次!
靜態體 主函式塊 構造體 建構函式塊的執行優先順序
1 執行的優先順序依次是靜態塊 主函式 main函式 構造體 建構函式 2 在main函式內無論是否有執行程式,都會執行靜態塊 3 若父類和子類都有靜態常量sum 靜態方法print 若是父類引用指向子類物件,則列印結果是子類靜態函式 父類sum 若是子類引用指向子類物件,則列印結果是子類靜態函式 ...
建構函式,靜態塊,匿名構造塊
1,靜態塊 隨著jvm載入類的時候載入而執行 不管new多少次,只執行一次 如果乙個類中有多個static修飾的靜態 塊,按照先後順序執行。例 public class b public b static public static b t3 new b public static void mai...
構造塊 靜態塊
構造塊 靜態塊 static靜態塊在類載入的時候執行,且只執行一遍。靜態變數也在類載入的時候初始化 public class test public static void main string args 輸出 12 構造塊在類初始化的時候執行 public class test public s...