撿起java那些被忽視的東西-類及靜態變量生命週期

 

分配空間:

      類變量是在準備階段分配內存賦默認值

類初始化順序:

  • 靜態變量賦值、靜態代碼塊初始化
  • 構造函數
  • 自定義構造函數

卸載:

   類靜態變量與類生命週期相同,類卸載了,靜態變量也就銷燬了。

  • 該類所有的實例都已經被回收,也就是java堆中不存在該類的任何實例。
  • 加載該類的ClassLoader已經被回收。
  • 該類對應的java.lang.Class對象沒有任何地方被引用,無法在任何地方通過反射訪問該類的方法。

    如果以上三個條件全部滿足,jvm就會在方法區垃圾回收的時候對類進行卸載,類的卸載過程其實就是在方法區中清空類信息,java類的整個生命週期就結束了。

參考文獻:

https://www.cnblogs.com/hf-cherish/p/4970267.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章