分配空間:
類變量是在準備階段分配內存賦默認值
類初始化順序:
- 靜態變量賦值、靜態代碼塊初始化
- 構造函數
- 自定義構造函數
卸載:
類靜態變量與類生命週期相同,類卸載了,靜態變量也就銷燬了。
- 該類所有的實例都已經被回收,也就是java堆中不存在該類的任何實例。
- 加載該類的ClassLoader已經被回收。
- 該類對應的java.lang.Class對象沒有任何地方被引用,無法在任何地方通過反射訪問該類的方法。
如果以上三個條件全部滿足,jvm就會在方法區垃圾回收的時候對類進行卸載,類的卸載過程其實就是在方法區中清空類信息,java類的整個生命週期就結束了。
參考文獻: