java类加载器_JAVA类加载器
生活随笔
收集整理的這篇文章主要介紹了
java类加载器_JAVA类加载器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
虛擬機設計團隊把加載動作放到 JVM 外部實現,以便讓應用程序決定如何獲取所需的類,JVM 提 供了 3 種類加載器:
1. 啟動類加載器(Bootstrap ClassLoader)
負責加載 JAVA_HOMElib 目錄中的,或通過-Xbootclasspath 參數指定路徑中的,且被虛擬機認可(按文件名識別,如 rt.jar)的類。
2. 擴展類加載器(Extension ClassLoader)
負責加載 JAVA_HOMElibext 目錄中的,或通過 java.ext.dirs 系統變量指定路徑中的類庫。
3. 應用程序類加載器(Application ClassLoader)
負責加載用戶路徑(classpath)上的類庫。 JVM 通過雙親委派模型進行類的加載,當然我們也可以通過繼承 java.lang.ClassLoader實現自定義的類加載器。
4. 雙親委派
當一個類收到了類加載請求,他首先不會嘗試自己去加載這個類,而是把這個請求委派給父類去完成,每一個層次類加載器都是如此,因此所有的加載請求都應該傳送到啟動類加載其中,只有當父類加載器反饋自己無法完成這個請求的時候(在它的加載路徑下沒有找到所需加載的Class),子類加載器才會嘗試自己去加載。 采用雙親委派的一個好處是比如加載位于 rt.jar 包中的類 java.lang.Object,不管是哪個加載器加載這個類,最終都是委托給頂層的啟動類加載器進行加載,這樣就保證了使用不同的類加載器最終得到的都是同樣一個 Object 對象。
總結
以上是生活随笔為你收集整理的java类加载器_JAVA类加载器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卡巴斯基授权许可文件_安全许可证的申请流
- 下一篇: 指针变量和引用变量的区别_指针Ⅰ--变量