天天看點

類的生命周期

1.java虛拟機及程式的生命周期

java虛拟機的生命周期:java虛拟機程序從啟動到終止的過程.

在以下情況下java虛拟機将結束生命周期

01.程式正常執行結束;

02.程式在執行中因為出現異常或錯誤而異常終止;

03.執行類System.exit()方法.

04.由于作業系統出現錯誤而導緻java虛拟機程序終止.

java程式的生命周期:

java程式從運作到終止到過程稱為程式的生命周期,它和java虛拟機的生命周期是一緻的.

2.類的加載,連接配接和初始化

當java程式需要使用某個類時,java虛拟機會確定這個類已經被加載,連接配接,初始化,其中連接配接包括:加載,連接配接,初始化 過程如下圖:

類的生命周期

這些步驟必須嚴格的按照這個順序執行:

(1).加載:查找并加載類的二進制資料.

(2).連接配接:包括驗證.準備和解析類的二進制資料.

01.驗證:確定被加載類的正确性;

02.準備:為類的靜态變量配置設定記憶體.并将其初始化為預設值;

03.解析:把類中的符号引用轉換為直接引用.

(3).初始化.給類的靜态變量賦予正确的初始值.

2.1.類的加載

類的加載:

1把.class檔案中的二進制資料讀取到記憶體中

2把它放在運作時資料區的方法區

3.在堆區建立一個java.lang.Class對象,用來封裝類在方法區内的資料結構(類的加載的最終産品便是運作時資料區的堆區的Class對象)

類的加載的最終産品是位于運作時資料區的堆區的Class對象,Class對象封裝了類在方法區内的資料結構,并且向java程式提供類通路類在方法區内的資料的接口

類的加載器:

主要任務是完成類的加載

類的加載器分為兩種:

01,java虛拟機自帶的加載器,包括啟動類加載器.擴充類加載器和系統類加載器.

02,使用者自定義的類加載器,是java.lang.ClassLoader類的子類的執行個體,使用者可以通過它來定制類的加載方式

java虛拟機允許類加載器在預料某個類将要被使用的時候預先加載它(即預加載機制),而不需要再等到需要"首次主動使用"時再加載它,預先加載時,如果遇到.class檔案缺失或者存在問題,類加載器,必須等到程式首次主動使用該類時才會報錯,如果這個類一直不使用,那麼類加載器不會報告錯誤.

後續...........