Java類的加載機制是指Java虛擬機(JVM)在運行時,加載和初始化Java類的過程。
Java類的加載過程主要分為三個階段:
加載(Loading):在加載階段,JVM根據類的全限定名(即類的包名加上類名)來查找并加載類的字節碼文件。具體來說,JVM會根據類加載器(ClassLoader)的層次結構,先嘗試使用啟動類加載器(Bootstrap ClassLoader)加載類,如果找不到,則由擴展類加載器(Extension ClassLoader)加載類,最后由應用程序類加載器(Application ClassLoader)加載類。如果以上類加載器都找不到類,則會拋出ClassNotFoundException異常。
鏈接(Linking):在鏈接階段,JVM對類的字節碼進行驗證、準備和解析等操作。
驗證(Verification):驗證階段主要是確保類的字節碼符合Java虛擬機規范,并且不會損害虛擬機的安全性。
準備(Preparation):準備階段主要是為類的靜態變量分配內存,并設置默認初始值。
解析(Resolution):解析階段主要是將類、接口、字段和方法的符號引用解析為直接引用。
需要注意的是,類的加載過程是在運行時動態進行的,而不是在編譯時靜態進行的。這意味著,Java代碼中引用的類,在編譯時可能還不存在,只有在運行時才會被加載和初始化。