靜態代碼塊執行時機

靜態變量在準備階段賦默認零值,在初始化階段賦用戶值,靜態代碼塊在初始化階段執行spa

 

本質上,static int a = 2 code

是要分紅兩步blog

  static int a;class

  static {a = 2}變量

也就是說,im

準備階段,靜態變量賦予零值static

初始化階段,靜態代碼塊執行(包括對靜態變量的賦值)img

public class StaticBlockDemo { static int a = 2; static { // 若是在準備階段,則a = 0; // 若是在初始化階段, a = 2;
 System.out.println(a); } public static void main(String[] args) { } }

相關文章
相關標籤/搜索