Docker學習筆記4 -- Dockerfile
阿新 • • 發佈:2021-10-07
一、生命週期
- 建立階段(Created):建立Java物件
- 為物件分配記憶體空間。
- 構造物件。
- 從超類到子類對static成員程序初始化,類的static成員的初始化在ClassLoader載入該類時進行。
- 超類成員變數按順序初始化化,遞迴呼叫超類的建構函式。
- 子類成員變數按順序初始化,一旦物件被建立,子類的建構函式就呼叫該物件併為一些變數賦值。完成以上這些後物件的狀態就切換到了應用階段InUse。
- 應用階段(InUse):物件至少被一個強引用持有,除非顯示的使用軟引用、弱引用、虛引用。
- 不可見階段(Invisible):不可見階段的物件在虛擬機器的物件根引用集合中再也找不到直接或者間接的強引用,最常見的就是執行緒或者函式中的臨時變數。
- 不可達階段(Unreachable):指物件不再被任何強引用持有,GC發現該物件已經不可達。
- 收集階段(Collected):GC發現物件處於不可達階段並且GC已經對該物件的記憶體空間重新分配做好準備,物件程序收集階段。如果,該物件的finalize()函式被重寫,則執行該函式。
- 終結階段(Finalized):物件的finalize()函式執行完成後,物件仍處於不可達狀態,該物件程序終結階段。
- 物件記憶體空間重新分配階段(Deallocaled):GC對該物件佔用的記憶體空間進行回收或者再分配,該物件徹底消失。