java中有三種類類加載器
- Bootstrap ClassLoader 此加載器采用c++編寫,一般開發中很少見。
- Extension ClassLoader 用來進行擴展類的加載,一般對應的是jre\lib\ext目錄中的類
- AppClassLoader 加載classpath指定的類,是最常用的加載器。同時也是java中默認的加載器。
類的生命周期
在一個類編譯完成之后,下一步就需要開始使用類,如果要使用一個類,肯定離不開JVM。在程序執行中JVM通過裝載,鏈接,初始化這3個步驟完成。類的裝載是通過類加載器完成的,加載器將.class文件的二進制文件裝入JVM的方法區,并且在堆區創建描述這個類的java.lang.Class對象。用來封裝數據。 但是同一個類只會被類裝載器裝載一次,鏈接就是把二進制數據組裝為可以運行的狀態。鏈接分為校驗,準備,解析這3個階段。
校驗一般用來確認此二進制文件是否適合當前的JVM(版本),準備就是為靜態成員分配內存空間,并設置默認值。解析指的是轉換常量池中的代碼作為直接引用的過程,直到所有的符號引用都可以被運行程序使用(建立完整的對應關系)完成之后,類型也就完成了初始化,初始化之后類的對象就可以正常使用了,直到一個對象不再使用之后,將被垃圾回收。釋放空間。當沒有任何引用指向Class對象時就會被卸載,結束類的生命周期