java靜態變量在類加載的時候初始化。類加載的時機有兩種情況:一種是在實例化對象的時候,另一種是在訪問靜態變量或靜態方法的時候。
當第一次實例化一個類的對象時,會先加載該類的字節碼文件(.class文件),并將靜態變量初始化為默認值(如int類型的默認值為0),然后再依次執行靜態代碼塊。
當第一次訪問一個類的靜態變量或靜態方法時,同樣會先加載該類的字節碼文件,并初始化靜態變量,然后再執行靜態代碼塊。
需要注意的是,靜態變量只會初始化一次,無論是通過實例化對象還是訪問靜態變量或靜態方法。如果靜態變量被多個對象共享,那么它們都會引用同一個靜態變量。