Java靜態塊學習

靜態塊是類裏面的構造器,對象有構造器那麼類也有構造器,類裏面的構造器叫作初始化方法。也就是new一個對象他會通過一個構造器。加載一個類,也有被初始化的一片代碼,這個就稱之爲靜態塊。一個類裏面能夠有不少個靜態塊,靜態塊的運行過程是,若是一個類裏面有多個靜態塊,那麼他是從上到下運行的。如圖7.5所示:htm

  
 

  圖7.5對象

  他是從上到下的運行,可是須要哪個的時候他就會被加載實例化,但靜態塊仍是從上到下執行。裏面能夠包含不少代碼 下載 ,可是靜態塊不能被實例的成員訪問。如圖7.51所示:blog

  

 
 圖7.51內存

  靜態塊是類被加載的時候就會被建立,靜態塊會被4種方式加載。第一種new對象靜態塊會初始化激發類被加載。如圖7.52所示:字符串

  

 

  圖7.52get

  第二種訪問靜態的屬性,也會激發類被加載。如圖7.53所示:it

  

 

  圖7.53下載

  第三種調用裏面的靜態方法,也會觸使類加載起來。如圖7.54所示:方法

  

  圖7.54im

  第四種用Class.forName(「Test」);能夠經過字符串加載起來,這種方式叫作動態加載,也能夠觸使一個類加載起來。如圖7.55所示: 下載

  圖7.55

  常量成員不能被初始化加載如圖7.56所示:

  圖7.56

  打印的是10,可是靜態塊的東西沒有打印出來,那就說明這個類沒有被加載起來,由於他是一個靜態的常量,靜態的常量不屬於類的內存,他沒有分配在這個類內存裏面,他不須要初始化這個類。靜態的屬性爲何能,由於靜態的屬性內存必需要分配在這個類裏面,因此他會被初始化加載,因此圖中的靜態塊不會被加載起來。

相關文章
相關標籤/搜索